Wie entkomme ich dem Unterstrich?
Ich schreibe so etwas wie die folgende where-Klausel und möchte in der Lage sein, tatsächliche Einträge mit _d am Ende zu finden.
Where Username Like '%_d'
sql-server
GateKiller
quelle
quelle
Natürlich ist die @ Klasse-Lösung richtig, aber es gibt noch eine andere Möglichkeit, Ihr Problem zu lösen: Der T-SQL-Operator
LIKE
definiert die optionale ESCAPE- Klausel, mit der Sie ein Zeichen deklarieren können, das dem nächsten Zeichen im Muster entgeht.Für Ihren Fall sind die folgenden WHERE-Klauseln gleichwertig:
quelle
ESCAPE
Klausel ist Teil des SQL-Standards und funktioniert auf jedem DBMS, nicht nur auf SQL Server.Diese Lösungen sind absolut sinnvoll. Leider hat keiner für mich wie erwartet funktioniert. Anstatt zu versuchen, mich damit zu beschäftigen, ging ich mit einer Arbeit herum:
quelle
Das hat bei mir funktioniert, benutze einfach die Flucht
'%\_%'
quelle
Keines davon hat in SSIS v18.0 für mich funktioniert, daher würde ich so etwas tun:
WHERE CHARINDEX('_', thingyoursearching) < 1
..wobei ich versuche, Zeichenfolgen mit einem Unterstrich zu ignorieren. Wenn Sie Dinge finden möchten, die einen Unterstrich haben, drehen Sie ihn einfach um:
WHERE CHARINDEX('_', thingyoursearching) > 0
quelle