Bagaimana cara saya keluar dari tanda persentase dalam T-SQL?


188

Pertanyaan ini juga memiliki jawabannya , tetapi ia menyebutkan DB2 secara khusus.

Bagaimana cara mencari string menggunakanLIKE yang sudah memiliki %simbol persen di dalamnya? The LIKEpenggunaan Operator %simbol untuk menandakan wildcard.

Jawaban:


285

Gunakan tanda kurung. Jadi untuk mencari 75%

WHERE MyCol LIKE '%75[%]%'

Ini lebih sederhana daripada ESCAPE dan umum untuk sebagian besar RDBMS.


2
juga perhatikan Anda tidak perlu melarikan diri simbol persen dalam konstruksi lain seperti fungsi pengguna, penggabungan, dll.
Bron Davies


2
Anda dapat melarikan diri juga karakter wildcard garis bawah terlalu: [_]. Bagaimana cara Anda keluar dari braket kotak yang terbuka itu? Seperti ini: [[]. sqlserver2000.databases.aspfaq.com/…
Csaba Toth

Menggunakan klausa ESCAPE lebih mudah dipahami daripada mekanisme penawaran MS yang rusak otak.
Suncat2000

52

Anda dapat menggunakan ESCAPEkata kunci dengan LIKE. Cukup tambahkan karakter yang diinginkan (mis. '!') Ke setiap %tanda yang ada di string dan kemudian tambahkan ESCAPE '!'(atau karakter pilihan Anda) ke akhir kueri.

Sebagai contoh:

SELECT *
FROM prices
WHERE discount LIKE '%80!% off%'
ESCAPE '!'

Ini akan membuat basis data memperlakukan 80% sebagai bagian sebenarnya dari string untuk mencari dan bukan 80 (wildcard).

MSDN Documents untuk LIKE



Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.