Vergleichsoperatoren (Transact-SQL)

Vergleichsoperatoren testen, ob zwei Ausdrücke gleichwertig sind. Vergleichsoperatoren können für alle Ausdrücke angewendet werden, außer für Ausdrücke der Datentypen text, ntext oder image. In der folgenden Tabelle werden die Transact-SQL-Vergleichsoperatoren aufgelistet.

Operator

Bedeutung

= (Gleich)

Gleich

> (Größer als)

Größer als

< (Kleiner als)

Kleiner als

>= (Größer als oder gleich)

Größer gleich

<= (Kleiner als oder gleich)

Kleiner gleich

<> (Ungleich)

Ungleich

!= (Ungleich)

Nicht gleich (kein ISO-Standard)

!< (Nicht kleiner als)

Nicht kleiner als (kein ISO-Standard)

!> (Nicht größer als)

Nicht größer als (kein ISO-Standard)

Boolesche Datentypen

Das Ergebnis eines Vergleichsoperators weist den Datentyp Boolean auf. Es kann drei Werte annehmen: TRUE, FALSE und UNKNOWN. Ausdrücke, die einen Wert vom Datentyp Boolean zurückgeben, werden auch als boolesche Ausdrücke bezeichnet.

Ein Boolean-Datentyp kann nicht wie die anderen SQL Server-Datentypen als Datentyp für eine Tabellenspalte oder eine Variable angegeben werden. Boolesche Werte können auch nicht in einem Resultset zurückgegeben werden.

Wenn SET ANSI_NULLS auf ON festgelegt ist, gibt ein Operator mit einem oder zwei NULL-Ausdrücken UNKNOWN zurück. Wenn SET ANSI_NULLS auf OFF festgelegt ist, gelten die gleichen Regeln; allerdings gibt der Gleichheitsoperator (=) TRUE zurück, wenn beide Ausdrücke NULL sind. So gibt beispielsweise NULL = NULL den Wert TRUE zurück, wenn SET ANSI_NULLS auf OFF festgelegt ist.

Ausdrücke mit Boolean Datentypen werden in den WHERE-Klauseln zum Filtern von Zeilen verwendet, die bestimmten Suchbedingungen entsprechen. Außerdem werden sie in den Sprachkonstrukten zur Ablaufsteuerung, wie z. B. IF und WHILE, verwendet. Beispiel:

USE AdventureWorks2008R2;
GO
DECLARE @MyProduct int;
SET @MyProduct = 750;
IF (@MyProduct <> 0)
   SELECT ProductID, Name, ProductNumber
   FROM Production.Product
   WHERE ProductID = @MyProduct;
GO