Deutsch

How To: Effiziente Verwendung des Operators LIKE in der Query Attributes-Task

Zusammenfassung

Mit dem SQL-Operator LIKE können Spalten nach einem bestimmten Muster durchsucht werden. Zur Vereinfachung der Suchvorgängen im Hinblick auf ein erwartetes Ergebnis lässt sich der Operator LIKE auch mit Platzhaltern kombinieren.

Vorgehensweise

Die folgenden Tipps helfen dabei, den Operator LIKE in Ausdrücken effizient zu verwenden.

Beachtung von Groß- und Kleinschreibung

Der Operator LIKE unterscheidet zwischen Groß- und Kleinschreibung. Die Textzeichenfolge, die zur Laufzeit der Webanwendung in die Query Attributes-Task geschrieben wird, muss mit der Schreibung des Attributwerts übereinstimmen.

Einige Datenbanken unterstützen die SQL-Funktionen UPPER und LOWER. Damit lassen sich Attributwerte und Benutzereingaben in dieselbe Schreibung umwandeln. Bei der Konfiguration der Query Attributes-Task in Visual Studio kann eine benutzerdefinierte WHERE-Klausel angegeben und als Ausdruck verwendet werden. Der Ausdruck im folgenden Beispiel wandelt den Attributwert und die Benutzereingabe in Kleinschreibung um, bevor die Zeichenfolgen dann mithilfe einer Abfrage gesucht werden:

lower(NAME) like lower({'0'})

Platzhalter

Mit Platzhaltern lassen sich Suchabfragen vereinfachen, weil nach Teilen eines gewünschten Ergebnisses gesucht werden kann. In Visual Studio können Platzhalter direkt in den Abfrageausdruck integriert werden. Ein Prozentzeichen (%) oder Sternchen (*) ersetzt ein beliebiges Zeichen und gibt als Ergebnis alle möglichen Kombinationen zurück. Die Abfragen in den folgenden Beispielen geben Zeichenfolgen zurück, die mit dem Buchstaben a beginnen bzw. darauf enden:
where CustomerName like 'a%'
where CustomerName like '%a'
Alternativ lassen sich mit dem Unterstrich (_) oder dem Fragezeichen (?) einzelne Buchstaben in einer bestimmten Zeichenfolge ersetzen. Der folgende Abfrageausdruck kann "Catherine" oder "Katherine" zurückgeben:
where CustomerName like '_atherine'
Die Platzhalter "%" und "*" können aber auch am Ende eines Abfrageausdrucks stehen. Der folgende Abfrageausdruck kann "Mark" oder "Marc" zurückgeben:
where CustomerName like 'Mar_'
Noch präzisere Abfragen lassen sich durch Kombination mehrerer Platzhalter erzeugen. Mit den folgenden Abfrageausdrücken wird nach beliebigen Zeichenfolgen mit dem Buchstaben "r" an zweiter Position gesucht bzw. nach beliebigen Zeichenfolgen, die mit "a" beginnen und aus insgesamt drei Zeichen bestehen:
where CustomerName like '_r%'
where CustomerName like 'a_%_%'