= (Gleich) (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL-Analyseendpunkt in Microsoft Fabric Warehouse in Microsoft Fabric SQL-Datenbank in Microsoft Fabric
Vergleicht die Gleichwertigkeit von zwei Ausdrücken (einem Vergleichsoperator) in SQL Server.
Transact-SQL-Syntaxkonventionen
Syntax
expression = expression
Argumente
expression
Ein beliebiger gültiger Ausdruck. Falls die Ausdrücke nicht vom selben Datentyp sind, muss der Datentyp für einen Ausdruck implizit in den Datentyp des anderen konvertierbar sein. Die Konvertierung basiert auf der Rangfolge der Datentypen.
Ergebnistypen
Boolean
Hinweise
Beim Vergleich mit NULL-Ausdrücken hängt das Ergebnis von der ANSI_NULLS
-Einstellung ab:
Wenn
ANSI_NULLS
auf ON festgelegt ist, ist UNKNOWN das Ergebnis von Vergleichen mit NULL. Dies folgt der ANSI-Konvention, dass NULL ein unbekannter Wert ist und nicht mit anderen Werten verglichen werden kann, auch nicht mit anderen NULL-Werten.Wenn
ANSI_NULLS
auf OFF festgelegt ist, ist TRUE das Ergebnis eines Vergleichs von NULL mit NULL, und das Ergebnis eines Vergleichs von NULL mit jedem anderen Wert ist FALSE.
Weitere Informationen finden Sie unter SET ANSI_NULLS (Transact-SQL).
Ein boolescher Ausdruck, der zu UNKNOWN führt, verhält sich in den meisten, aber nicht in allen Fällen wie FALSE. Weitere Informationen finden Sie unter NULL und UNKNOWN (Transact-SQL) und unter NOT (Transact-SQL).
Beispiele
A. Verwenden des Gleichheitszeichens (") in einer einfachen Abfrage
Im folgenden Beispiel wird der Gleich-Operator verwendet, um alle Zeilen in der HumanResources.Department
-Tabelle zurückzugeben, in denen der Wert der GroupName
-Spalte gleich dem Wort "Manufacturing" ist.
-- Uses AdventureWorks
SELECT DepartmentID, Name
FROM HumanResources.Department
WHERE GroupName = 'Manufacturing';
Hier sehen Sie das Ergebnis.
DepartmentID Name
------------ --------------------------------------------------
7 Production
8 Production Control
(2 row(s) affected)
B. Vergleichen von NULL- und Nicht-NULL-Werten
Im folgenden Beispiel werden mithilfe der Vergleichsoperatoren Gleich (=
) und Ungleich (<>
) Vergleiche mit NULL
-Werten und mit Werten ungleich NULL in einer Tabelle ausgeführt. Das Beispiel zeigt ebenfalls, dass IS NULL
durch die SET ANSI_NULLS
-Einstellung nicht beeinflusst wird.
-- Create table t1 and insert 3 rows.
CREATE TABLE dbo.t1 (a INT NULL);
INSERT INTO dbo.t1 VALUES (NULL),(0),(1);
GO
-- Print message and perform SELECT statements.
PRINT 'Testing default setting';
DECLARE @varname int;
SET @varname = NULL;
SELECT a
FROM t1
WHERE a = @varname;
SELECT a
FROM t1
WHERE a <> @varname;
SELECT a
FROM t1
WHERE a IS NULL;
GO
-- SET ANSI_NULLS to ON and test.
PRINT 'Testing ANSI_NULLS ON';
SET ANSI_NULLS ON;
GO
DECLARE @varname int;
SET @varname = NULL
SELECT a
FROM t1
WHERE a = @varname;
SELECT a
FROM t1
WHERE a <> @varname;
SELECT a
FROM t1
WHERE a IS NULL;
GO
-- SET ANSI_NULLS to OFF and test.
PRINT 'Testing SET ANSI_NULLS OFF';
SET ANSI_NULLS OFF;
GO
DECLARE @varname int;
SET @varname = NULL;
SELECT a
FROM t1
WHERE a = @varname;
SELECT a
FROM t1
WHERE a <> @varname;
SELECT a
FROM t1
WHERE a IS NULL;
GO
-- Drop table t1.
DROP TABLE dbo.t1;
Hier sehen Sie das Ergebnis.
Testing default setting
a
-----------
NULL
(1 row(s) affected)
a
-----------
0
1
(2 row(s) affected)
a
-----------
NULL
(1 row(s) affected)
Testing ANSI_NULLS ON
a
-----------
(0 row(s) affected)
a
-----------
(0 row(s) affected)
a
-----------
NULL
(1 row(s) affected)
Testing SET ANSI_NULLS OFF
a
-----------
NULL
(1 row(s) affected)
a
-----------
0
1
(2 row(s) affected)
a
-----------
NULL
(1 row(s) affected)
Weitere Informationen
Datentypen (Transact-SQL)
Ausdrücke (Transact-SQL)
Operatoren (Transact-SQL)