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

Keluar dari string di SQL Server sehingga aman digunakan dalam ekspresi LIKE

Untuk menghindari karakter khusus dalam ekspresi LIKE, Anda mengawalinya dengan karakter escape. Anda dapat memilih karakter escape mana yang akan digunakan dengan kata kunci ESCAPE. (Referensi MSDN)

Misalnya ini lolos dari simbol %, menggunakan \ sebagai karakter pelarian:

select * from table where myfield like '%15\% off%' ESCAPE '\'

Jika Anda tidak tahu karakter apa yang akan ada di string Anda, dan Anda tidak ingin memperlakukannya sebagai karakter pengganti, Anda dapat mengawali semua karakter karakter pengganti dengan karakter pelarian, misalnya:

set @myString = replace( 
                replace( 
                replace( 
                replace( @myString
                ,    '\', '\\' )
                ,    '%', '\%' )
                ,    '_', '\_' )
                ,    '[', '\[' )

(Perhatikan bahwa Anda juga harus keluar dari karakter pelarian Anda, dan pastikan itu adalah replace bagian dalam jadi Anda tidak luput dari yang ditambahkan dari replace lainnya pernyataan). Kemudian Anda dapat menggunakan sesuatu seperti ini:

select * from table where myfield like '%' + @myString + '%' ESCAPE '\'

Juga ingat untuk mengalokasikan lebih banyak ruang untuk variabel @myString Anda karena akan menjadi lebih panjang dengan penggantian string.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa gunanya tanda kurung siku [] dalam pernyataan sql?

  2. Bagaimana cara mengembalikan angka acak sebagai kolom di SQL Server 2005?

  3. Harus mendeklarasikan variabel skalar

  4. Prosesor Intel Xeon yang Dapat Diskalakan dan SQL Server 2017

  5. Perbedaan Antara sys.parameters, sys.system_parameters, &sys.all_parameters di SQL Server