Connect with us

Wie man

Suchen nach Zeilen mit Sonderzeichen in SQL Server

Bei der Behebung eines Programmierproblems ist mir heute aufgefallen, dass Sie eine LIKE-Suche nach String-Spalten mit Sonderzeichen wie % oder _ nicht verwenden können, ohne eine spezielle Syntax zu verwenden. Das Herausfinden des Problems dauerte nur wenige Minuten, aber es ist immer einfacher, sich an die Syntax zu erinnern, wenn Sie darüber schreiben.

Also ja, dieser Beitrag ist ausschließlich zu meinem Vorteil. Hoffentlich hilft es auch jemand anderem.

Angenommen, Sie möchten alle Felder finden, die den Text „100%“ enthalten, und stellen daher diese Abfrage zusammen:

SELECT * FROM Tabellenname WHERE Feldname LIKE ‚%100%%‘

Anstelle von dem, was Sie wollten, erhalten Sie alle Zeilen, die „100“ enthalten, sowie die Zeilen, die „100%“ enthalten.

Das Problem hierbei ist, dass SQL Server das Prozentzeichen, den Unterstrich und die eckigen Klammern als Sonderzeichen verwendet. Sie können sie einfach nicht als einfaches Zeichen in einer LIKE-Abfrage verwenden, ohne sie zu maskieren.

Flucht mit quadratischer Klammer B

Sie können % oder _ in eckige Klammern setzen, um SQL Server mitzuteilen, dass das darin enthaltene Zeichen ein normales Zeichen ist.

SELECT * FROM Tabellenname WHERE Feldname LIKE ‚%100[%]%‘

T-SQL ESCAPE-Syntax

Alternativ können Sie den ESCAPE-Operator an Ihre Abfrage anhängen und ein -Zeichen vor dem Wert hinzufügen, den Sie maskieren möchten.

SELECT * FROM Tabellenname WHERE Feldname LIKE ‚%100%%‘ ESCAPE “

Der ESCAPE-Teil “ der Abfrage weist die SQL-Engine an, das Zeichen nach dem als Literalzeichen statt als Platzhalter zu interpretieren.

Persönlich finde ich die zweite Methode einfacher zu handhaben, und Sie können sie auch verwenden, um eine eckige Klammer zu umgehen.

Continue Reading
Click to comment

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Tendencia