In SQL kann der „_“ im Like Operator verwendet werden, um genau ein beliebiges Zeichen an genau dieser Stelle zu finden.
Beispiel:
SELECT ename FROM emp WHERE ename LIKE "_iger" --- Tiger
Wie suche ich jetzt aber nach allen Datensätzen, die einen Underscore „_“ als Text enthalten?
So funktioniert es nicht!
SELECT email FROM emailaddresses WHERE email LIKE '%_%' --- gunther@testmal.cn gunther_test@test.cn ... -- Findet alle!
Lösung: Das Syntaktische Element „_“ escapen, damit es als Text gesucht wird!
SELECT email FROM emailaddresses WHERE email LIKE '%\_%' ESCAPE '\'; --- gunther_pipperr@testmail.cn SELECT email FROM emailaddresses WHERE email like '%-_%' ESCAPE '-'; --- gunther_pipperr@testmail.cn
SELECT email FROM emailaddresses WHERE regexp_like(email,'^.*[_].*$'); --- gunther_pipperr@testmail.cn
⇒ Siehe auch Reguläre Ausdrücke in der Oracle Datenbank in SQL verwenden