Benutzer-Werkzeuge

Webseiten-Werkzeuge


prog:sql_like_escape

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
prog:sql_like_escape [2018/03/15 10:25]
gpipperr [1. Versuch]
prog:sql_like_escape [2018/03/15 10:26] (aktuell)
gpipperr [2. Versuch]
Zeile 1: Zeile 1:
 +====== 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:
 +<code sql>
 +select ename from emp where ename like "_iger"
 +---
 +Tiger
 +</code>
 +
 +Wie suche ich jetzt aber nach allen Datensätzen, die einen Underscore "_" als Text enthalten?
 +
 +===1. Versuch===
 +<fc #ff0000>So funktioniert es nicht!</fc>
 +<code sql>
 +
 +SELECT email FROM emailaddresses WHERE email like '%_%'
 +---
 +gunther@testmal.cn
 +gunther_test@test.cn
 +...
 +-- Findet alle!
 +</code>
 +
 +===2. Versuch===
 +
 +**<fc #008000>Lösung: Das Syntaktische Element "_" escapen, damit es als Text gesucht wird!</fc>**
 +
 +<code sql>
 +SELECT email FROM emailaddresses WHERE email like '%\_%' ESCAPE '\';
 +---
 +gunther_pipperr@testmail.cn
 +
 +SELECT email FROM emailaddresses WHERE email like  '%-_%' ESCAPE '-';
 +---
 +gunther_pipperr@testmail.cn
 +</code>
 +
 +===3. Versuch (ab 10g) Regulärer Ausdurck===
 +<code sql>
 +select email  from emailaddresses where regexp_like(email,'^.*[_].*$');
 +---
 +gunther_pipperr@testmail.cn
 +</code>
 +
 +=> Siehe auch [[prog:sql_regular_expression|Reguläre Ausdrücke in der Oracle Datenbank in SQL verwenden]]
  
"Autor: Gunther Pipperr"
prog/sql_like_escape.txt · Zuletzt geändert: 2018/03/15 10:26 von gpipperr