Man lernt ja nie aus, nach jahrelanger SQL-Erfahrung stand ich nun vor dem Problem aus einer Textspalte einer SQL-Server-Datenbank alle Werte mit einem ‘%’-Zeichen zu extrahieren. Einfacher gesagt als getan, den das ‘%’-Zeichen ist ein Platzhalter für beliebige Zeichen. Da mußte ich also doch Dokumentation wälzen und habe dann den Befehl gefunden, der hilfreich ist.
Man erweitert den LIKE Operator um den die Answeisung ESCAPE, dann klappt es.
match_expression [NOT] LIKE pattern [ESCAPE escape_character]
Im Beispiel sieht das so aus:
SELECT foo FROM batz WHERE txt LIKE '% 19!%' ESCAPE '!'
Hier ist das !-Zeichen das Escapezeichen für Prozent. Das tolle dabei ist, das der Escapecharakter seperat definiert werden kann, den man weis ja nie wie eine Bedingung aussehen kann und der SQL-Server kann nicht raten.
Das tolle bei dem SQL-Befehl ist, das er auch bei Oracle-Datenbanken funktioniert, und kann so in datenbankunabhänigigen Prgrammen verwendet werden.