TurboSQL Guide

WHERE

Top  Previous  Next

Gibt Filterbedingungen für eine SELECT- oder UPDATE-Anweisung an.

WHERE predicates

Beschreibung

Verwenden Sie eine WHERE-Klausel, um die Auswirkungen einer SELECT- oder UPDATE-Anweisung auf eine Untermenge von Zeilen in der Tabelle zu beschränken. Die Verwendung einer WHERE-Klausel ist optional.

Der Wert für eine WHERE-Klausel ist ein oder mehrere logische Ausdrücke oder Prädikate, die für jede Zeile in der Tabelle TRUE oder FALSE ergeben. Nur jene Zeilen, für welche die Prädikate TRUE ergeben, werden von einer SELECT-Anweisung entnommen oder von einer UPDATE-Anweisung aktualisiert. Beispielsweise entnimmt die folgende SELECT-Anweisung alle Zeilen, für welche die Spalte STATE den Wert "CA" enthält:

SELECT company, state
FROM customer
WHERE state = "CA"

Mehrere Prädikate müssen durch einen der logischen Operatoren OR oder AND getrennt werden. Jedes Prädikat kann durch den Operator NOT negiert werden. Klammern können verwendet werden, um logische Vergleiche und Gruppen von Vergleichen zu isolieren. Dadurch werden unterschiedliche Zeilenevaluierungskriterien produziert. So entnimmt beispielsweise die folgende SELECT-Anweisung alle Zeilen, für welche die Spalte STATE den Wert "CA" enthält, sowie diejenigen mit dem Wert "HI":

SELECT company, state
FROM customer
WHERE (state = 'CA') OR (state = 'HI')

Die folgende SELECT-Anweisung entnimmt alle Zeilen, in denen die Spalte SHAPE die Werte "round" oder "square" und die Spalte COLOR den Wert „red" enthält. Eine Zeile, die beispielsweise in der Spalte SHAPE der Wert „round" und in der Spalte COLOR der Wert „blue" enthält, würde nicht entnommen werden.

SELECT shape, color, cost
FROM objects
WHERE ((shape = "round") OR (shape = "square")) AND (color = "red")

Ohne die Klammern, durch die die Rangfolge der logischen Operatoren verändert wird, erhalten Sie ein völlig anderes Ergebnis (siehe die folgende Anweisung). Diese Anweisung entnimmt die Zeilen, die in der Spalte SHAPE "round" enthalten, unabhängig vom in der Spalte COLOR vorhandenen Wert. Desweiteren werden Zeilen entnommen, die in der Spalte SHAPE den Wert "square" und in der Spalte COLOR den Wert "red" enthalten. Im Gegensatz zum obigen Beispiel würden hier Zeilen entnommen, die in SHAPE "round" und in COLOR "blue" enthalten.

SELECT shape, color, cost
FROM objects
WHERE shape = "round" OR shape = "square" AND color = "red"

Hinweis

Eine WHERE-Klausel filtert Daten vor der Gruppierung einer GROUP BY-Klausel. Verwenden Sie zum Filtern basierend auf aggregierten Werten eine HAVING-Klausel.

Anwendung

SELECT, UPDATE, DELETE