Antworten:
CHARINDEX () sucht nach einer Teilzeichenfolge in einer größeren Zeichenfolge und gibt die Position der Übereinstimmung zurück oder 0, wenn keine Übereinstimmung gefunden wird
if CHARINDEX('ME',@mainString) > 0
begin
--do something
end
Bearbeiten oder von Daniels Antwort: Wenn Sie ein Wort (und keine Unterkomponenten von Wörtern) suchen möchten, sieht Ihr CHARINDEX-Aufruf folgendermaßen aus:
CHARINDEX(' ME ',' ' + REPLACE(REPLACE(@mainString,',',' '),'.',' ') + ' ')
(Fügen Sie rekursivere REPLACE () - Aufrufe für andere möglicherweise auftretende Interpunktionen hinzu
REPLACEselbst aufgerufen würde ; "verschachtelt" ist, wenn das Ergebnis eines Funktionsaufrufs sofort an eine andere Funktion übergeben wird.
select CHARINDEX('ME' collate Latin1_General_CS_AS,'Home')und select CHARINDEX('ME' collate Latin1_General_CI_AS,'Home'). (In Kollatierungen CSsteht für Groß- und Kleinschreibung und ich bin sicher, dass Sie trainieren können CI).
Sie können einfach Platzhalter im Prädikat verwenden (nach IF, WHERE oder ON):
@mainstring LIKE '%' + @substring + '%'
oder in diesem speziellen Fall
' ' + @mainstring + ' ' LIKE '% ME[., ]%'
(Setzen Sie die Leerzeichen in die Zeichenfolge in Anführungszeichen, wenn Sie nach dem gesamten Wort suchen, oder lassen Sie sie weg, wenn ME Teil eines größeren Wortes sein kann.)
Nwenn Ihre Spalte eine ist nvarchar, sonst erhalten Sie zeilenweise Konvertierungen.)