Musterabgleich in SQL-Abfragen mit Wildcards

click fraud protection

Mit dem SQL-Mustervergleich können Sie nach Mustern in Daten suchen, wenn Sie das gesuchte Wort oder den gesuchten Ausdruck nicht genau kennen. Diese Art von SQL query verwendet Platzhalterzeichen, um ein Muster abzugleichen, anstatt es genau anzugeben. Sie können beispielsweise den Platzhalter "C%" verwenden, um eine beliebige Zeichenfolge zu finden, die mit einem großen C beginnt.

Lupe
Kate Ter Haar / Flickr/CC von 2.0

Verwenden des LIKE-Operators

Um einen Platzhalterausdruck in einer SQL-Abfrage zu verwenden, verwenden Sie den LIKE-Operator in einer WHERE-Klausel und schließen Sie das Muster in einfache Anführungszeichen ein.

Verwenden des Platzhalters % zum Durchführen einer einfachen Suche

Um in Ihrer Datenbank nach einem beliebigen Mitarbeiter mit einem Nachnamen zu suchen, der mit dem Buchstaben C beginnt, verwenden Sie die folgende Transact-SQL-Anweisung:

WÄHLEN *
VON Mitarbeitern
WHERE nachname LIKE 'C%'

Weglassen von Mustern mit dem Schlüsselwort NOT

Verwenden Sie das Schlüsselwort NOT, um Datensätze auszuwählen, die nicht dem Muster entsprechen. Diese Abfrage gibt beispielsweise alle Datensätze zurück, deren Name als letzter gilt

instagram viewer
nicht mit C beginnen:

WÄHLEN *
VON Mitarbeitern
WHERE nachname NICHT LIKE 'C%'

Ein Muster überall mit dem Platzhalter % zweimal abgleichen

Verwenden Sie zwei Instanzen von % Platzhalter, um ein bestimmtes Muster an einer beliebigen Stelle zu finden. Dieses Beispiel gibt alle Datensätze zurück, die irgendwo im Nachnamen ein C enthalten:

WÄHLEN *
VON Mitarbeitern
WO Nachname LIKE '%C%'

Finden einer Musterübereinstimmung an einer bestimmten Position

Verwenden Sie die _ Platzhalter, um Daten an einem bestimmten Ort zurückzugeben. Dieses Beispiel stimmt nur überein, wenn C an der dritten Position der Nachnamensspalte vorkommt:

WÄHLEN *
VON Mitarbeitern
WHERE nachname LIKE '_ _C%'

Unterstützte Wildcard-Ausdrücke in Transact SQL

Es gibt mehrere Platzhalterausdrücke, die von Transact SQL unterstützt werden:

  • Das % Wildcard entspricht null oder mehr Zeichen eines beliebigen Typs und kann verwendet werden, um Wildcards sowohl vor als auch nach dem Muster zu definieren. Wenn Sie mit DOS-Mustervergleichen vertraut sind, entspricht dies dem Platzhalter * in dieser Syntax.
  • Das _ Wildcard entspricht genau einem Zeichen eines beliebigen Typs. Es ist das Äquivalent von ? Platzhalter beim DOS-Mustervergleich.
  • Geben Sie eine Liste von Zeichen an, indem Sie sie in eckige Klammern setzen. Zum Beispiel der Platzhalter [aeiou] passt zu jedem Vokal.
  • Geben Sie einen Zeichenbereich an, indem Sie den Bereich in eckige Klammern einschließen. Zum Beispiel der Platzhalter [a-m] entspricht jedem Buchstaben in der ersten Hälfte des Alphabets.
  • Negieren Sie einen Zeichenbereich, indem Sie das Karat-Zeichen direkt in die öffnende eckige Klammer einfügen. Beispielsweise, [^aeiou] stimmt mit jedem Nicht-Vokal-Zeichen überein, während [^a-m] stimmt mit jedem Zeichen überein, das nicht in der ersten Hälfte des Alphabets enthalten ist.

Kombinieren von Wildcards für komplexe Muster

Kombinieren Sie diese Platzhalter in komplexen Mustern, um komplexere Abfragen durchzuführen. Angenommen, Sie müssen eine Liste aller Ihrer Mitarbeiter erstellen, deren Namen mit einem Buchstaben aus der ersten Hälfte des Alphabets beginnen, dies jedoch nicht tun nicht mit einem Vokal enden. Sie könnten die folgende Abfrage verwenden:

WÄHLEN *
VON Mitarbeitern
WHERE nachname LIKE '[a-m]%[^aeiou]'

In ähnlicher Weise können Sie eine Liste aller Mitarbeiter mit Nachnamen erstellen, die aus genau vier Zeichen bestehen, indem Sie vier Instanzen des _ Muster:

WÄHLEN *
VON Mitarbeitern
WO Nachname LIKE '____'

Wie Sie sehen, bietet die Verwendung von SQL-Mustervergleichsfunktionen Datenbankbenutzern die Möglichkeit, über einfache Textabfragen hinauszugehen und erweiterte Suchvorgänge durchzuführen.

instagram story viewer