Yanıtlar:
CHARINDEX (), daha büyük bir dizede bir alt dizeyi arar ve eşleşmenin konumunu döndürür veya eşleşme bulunmazsa 0 değerini döndürür
if CHARINDEX('ME',@mainString) > 0
begin
--do something
end
Düzenleme veya bir kelimeyi (ve sözcüklerin değil alt bileşenlerini) bulmak isteyen konum daniels cevabını, senin CHARINDEX çağrı gibi görünecektir:
CHARINDEX(' ME ',' ' + REPLACE(REPLACE(@mainString,',',' '),'.',' ') + ' ')
(Olası olabilecek diğer noktalama işaretlerini daha fazla yinelemeli REPLACE () çağrısı ekleyin
REPLACE
kendisi çağrılırsa; "iç içe", bir işlev çağrısının sonucunun hemen başka bir işleve geçirildiği zamandır.
select CHARINDEX('ME' collate Latin1_General_CS_AS,'Home')
ve select CHARINDEX('ME' collate Latin1_General_CI_AS,'Home')
. (Harmanlamalarda CS
Büyük / Küçük Harfe Duyarlı anlamına gelir ve emin olabilirsiniz CI
).
Konumda joker karakterler kullanabilirsiniz (IF, WHERE veya ON'dan sonra):
@mainstring LIKE '%' + @substring + '%'
veya bu özel durumda
' ' + @mainstring + ' ' LIKE '% ME[., ]%'
(Tüm kelimeyi arıyorsanız, alıntılanan dizeye boşluk koyun veya ME daha büyük bir kelimenin parçası olabilirse boşlukları bırakın).
N
sütun bir ise nvarchar
aksi takdirde başına sıranın dönüşüm elde,)