Wie entferne ich das Unterstrichzeichen?
Ich schreibe etwas wie die folgende Where-Klausel und möchte in der Lage sein, aktuelle Einträge mit _d am Ende zu finden.
Where Username Like '%_d'
Wie entferne ich das Unterstrichzeichen?
Ich schreibe etwas wie die folgende Where-Klausel und möchte in der Lage sein, aktuelle Einträge mit _d am Ende zu finden.
Where Username Like '%_d'
Sie können die Platzhalterzeichen für den Mustervergleich als Literalzeichen verwenden. Um ein Platzhalterzeichen als Literalzeichen zu verwenden, schließen Sie das Platzhalterzeichen in Klammern ein. Die folgende Tabelle zeigt mehrere Beispiele für die Verwendung des Schlüsselworts LIKE und der Platzhalterzeichen [ ].
Für Ihren Fall:
... LIKE '%[_]d'
Natürlich ist die Lösung von @Lasse richtig, aber es gibt noch eine andere Möglichkeit, Ihr Problem zu lösen: T-SQL-Operator LIKE
definiert die optionale ESCAPE Klausel, mit der Sie ein Zeichen deklarieren können, das das nächste Zeichen in das Muster entweichen lässt.
In Ihrem Fall sind die folgenden WHERE-Klauseln gleichwertig:
WHERE username LIKE '%[_]d'; -- @Lasse solution
WHERE username LIKE '%$_d' ESCAPE '$';
WHERE username LIKE '%^_d' ESCAPE '^';
Diese Lösungen sind absolut sinnvoll. Leider hat bei mir keine der beiden Lösungen wie erwartet funktioniert. Anstatt zu versuchen, sich damit herumzuschlagen, habe ich eine Lösung gefunden:
select *
from information_schema.columns
where replace(table_name,'_','!') not like '%!%'
order by table_name
Ich hatte ein ähnliches Problem mit einem ähnlichen Muster '%_%'
hat nicht funktioniert - wie die Frage andeutet :-)
Verwendung von '%\_%'
hat auch nicht funktioniert, da diese erste \
wird "vor Gleichem" interpretiert.
Verwendung von '%\\_%'
funktioniert. Die \\
(doppelter Backslash) wird zunächst in einen einfachen umgewandelt \
(Backslash) und dann nach dem gleichen Muster verwendet.
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.