Vergleichsoperatoren (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance SQL-Datenbank in Microsoft Fabric
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 |
---|---|
= (Ist gleich) | Gleich |
> (Größer als) | Größer als |
< (Kleiner als) | Kleiner als |
>= (Größer als oder gleich) | Größer als oder gleich |
<= (Kleiner als oder gleich) | Kleiner als oder 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) |
Boolean-Datentyp
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 mit Ausnahme der Operatoren gleich (=) und ungleich (<>). Wenn SET ANSI_NULLS auf OFF festgelegt ist, behandeln diese Operatoren NULL als bekannten Wert, der jedem anderen NULL entspricht, und geben entweder TRUE oder FALSE zurück (aber nie UNKNOWN).
Ausdrücke mit Boolean-Datentypen werden in drt WHERE-Klausel zum Filtern von Zeilen verwendet, die bestimmten Suchbedingungen entsprechen. Außerdem werden sie in den Sprachkonstrukten zur Ablaufsteuerung, wie IF und WHILE, verwendet. Beispiel:
-- Uses AdventureWorks
DECLARE @MyProduct INT;
SET @MyProduct = 750;
IF (@MyProduct <> 0)
SELECT ProductID, Name, ProductNumber
FROM Production.Product
WHERE ProductID = @MyProduct;