Benutzer-Werkzeuge

Webseiten-Werkzeuge


prog:sql_like_escape

Suchen mit dem Like Operator nach Texten, die einen "_" enthalten

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?

1. Versuch

So funktioniert es nicht!

SELECT email FROM emailaddresses WHERE email LIKE '%_%'
---
gunther@testmal.cn
gunther_test@test.cn
...
-- Findet alle!

2. Versuch

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

3. Versuch (ab 10g) Regulärer Ausdurck

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

Cookies helfen bei der Bereitstellung von Inhalten. Diese Website verwendet Cookies. Mit der Nutzung der Website erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Computer gespeichert werden. Außerdem bestätigen Sie, dass Sie unsere Datenschutzerklärung gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website. Weitere Information
"Autor: Gunther Pipperr"
prog/sql_like_escape.txt · Zuletzt geändert: 2018/03/15 10:26 von gpipperr