Jawaban:
CHARINDEX () mencari substring dalam string yang lebih besar, dan mengembalikan posisi kecocokan, atau 0 jika tidak ada kecocokan yang ditemukan
if CHARINDEX('ME',@mainString) > 0
begin
--do something
end
Edit atau dari daniels jawab, jika Anda ingin menemukan kata (dan bukan subkomponen kata), panggilan CHARINDEX Anda akan terlihat seperti:
CHARINDEX(' ME ',' ' + REPLACE(REPLACE(@mainString,',',' '),'.',' ') + ' ')
(Tambahkan REPLACE rekursif lebih banyak () panggilan untuk tanda baca lain yang mungkin terjadi
REPLACE
dipanggil sendiri; "nested" adalah ketika hasil dari panggilan fungsi segera dialihkan ke fungsi lain.
select CHARINDEX('ME' collate Latin1_General_CS_AS,'Home')
dan select CHARINDEX('ME' collate Latin1_General_CI_AS,'Home')
. (Dalam susunan, CS
singkatan dari Case Sensitive dan saya yakin Anda dapat berolahraga CI
).
Anda bisa menggunakan wildcard dalam predikat (setelah IF, WHERE atau ON):
@mainstring LIKE '%' + @substring + '%'
atau dalam kasus khusus ini
' ' + @mainstring + ' ' LIKE '% ME[., ]%'
(Letakkan spasi di string yang dikutip jika Anda mencari seluruh kata, atau tinggalkan jika ME dapat menjadi bagian dari kata yang lebih besar).
N
jika kolom Anda adalah nvarchar
, jika tidak, Anda mendapatkan konversi per baris)