Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách xóa một ký tự cụ thể khỏi chuỗi, chỉ khi nó là ký tự đầu tiên hoặc cuối cùng trong chuỗi.

Một cách để đối phó với các dấu phẩy "cắt xén" như vậy sẽ là sử dụng CASE tuyên bố:

CASE
    WHEN str LIKE ',%,' THEN SUBSTRING(str, 2, LEN(str)-2)
    WHEN str LIKE ',%'  THEN RIGHT(str, LEN(str)-1)
    WHEN str LIKE '%,'  THEN LEFT(str, LEN(str)-1)
    ELSE str
END

Điều này rất dễ hiểu:CASE tuyên bố xem xét ba tình huống -

  • Khi chuỗi str có dấu phẩy ở cả hai bên,
  • Khi chuỗi str bắt đầu bằng dấu phẩy nhưng không kết thúc bằng dấu phẩy và
  • Khi chuỗi str kết thúc bằng dấu phẩy nhưng không bắt đầu bằng dấu phẩy.

Trong trường hợp đầu tiên, ký tự đầu tiên và ký tự cuối cùng bị loại bỏ; trong trường hợp thứ hai, ký tự ngoài cùng bên trái bị xóa; trong trường hợp cuối cùng, ký tự ở cuối bị xóa.

Demo trên sqlfiddle.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tính hình vuông trong SQL Server

  2. Tham gia tự nhiên trong SQL Server

  3. Đánh giá phần mềm - Stellar Repair cho MS SQL

  4. Mệnh đề WHERE trên SQL Server Kiểu dữ liệu văn bản

  5. Định cấu hình nhóm AlwaysOn Av sẵn sàng trên SQL Server