68 Stimmen

Prüfen, ob die Zeichenkette keine andere Zeichenkette enthält

Wie kann man in T-SQL prüfen, ob eine Zeichenfolge keine andere Zeichenfolge enthält?

Ich habe eine nvarchar was "Orangen Äpfel" sein könnte.

Ich möchte eine Aktualisierung durchführen, bei der zum Beispiel eine Spalte nicht enthalten "Äpfel".

Wie lässt sich das bewerkstelligen?

107voto

Daniel A. White Punkte 180762
WHERE NOT (someColumn LIKE '%Apples%')

26voto

marc_s Punkte 701497

Alternativ können Sie auch dies verwenden:

WHERE CHARINDEX(N'Apples', someColumn) = 0

Ich bin mir nicht sicher, welches von beiden besser funktioniert - Sie müssen es testen! :-)

Marc

UPDATE: Die Leistung scheint der anderen Lösung (WHERE someColumn NOT LIKE '%Apples%') in nichts nachzustehen - es ist also wirklich nur eine Frage der persönlichen Präferenz.

10voto

dutch Punkte 212

Verwenden Sie dies als WHERE-Bedingung

WHERE CHARINDEX('Apples', column) = 0

8voto

Greg Dougherty Punkte 3107

Die Antworten, die Sie erhalten haben, setzten einen statischen Text zum Vergleich voraus. Wenn Sie mit einer anderen Spalte vergleichen wollen (z. B. wenn Sie zwei Tabellen verbinden und diejenigen finden wollen, bei denen eine Spalte aus einer Tabelle Teil einer Spalte aus einer anderen Tabelle ist), können Sie Folgendes tun

WHERE NOT (someColumn LIKE '%' || someOtherColumn || '%')

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X