Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Cara menghapus karakter tertentu dari string, hanya jika itu adalah karakter pertama atau terakhir dalam string.

Salah satu cara untuk menangani koma "memotong" seperti itu adalah dengan menggunakan CASE pernyataan:

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

Ini sangat jelas:CASE pernyataan mempertimbangkan tiga situasi -

  • Bila string str memiliki koma di kedua sisi,
  • Bila string str dimulai dengan koma, tetapi tidak diakhiri dengan koma, dan
  • Bila string str diakhiri dengan koma, tetapi tidak dimulai dengan koma.

Dalam kasus pertama, karakter pertama dan terakhir dihapus; dalam kasus kedua, karakter paling kiri dihapus; dalam kasus terakhir, karakter tambahan dihilangkan.

Demo di 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. Mengalami masalah dengan penyimpanan UTF-8 di NVarChar di SQL Server 2008

  2. Menguasai Penggunaan Stoplist Dengan SQL Server Full-Text Search (FTS)

  3. Permintaan PIVOT pada catatan Berbeda

  4. Mesin Virtual Azure untuk Penggunaan SQL Server

  5. Cara Memindahkan File Data di SQL Server – Bagian 1