Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Analytics-eindpunt in Microsoft Fabric
Magazijn in Microsoft Fabric
SQL-database in Microsoft Fabric Preview
Vergelijkt de gelijkheid van twee expressies (een vergelijkingsoperator) in SQL Server.
Transact-SQL syntaxis-conventies
Syntax
expression = expression
Arguments
expression
Is een geldige expressie. Als de expressies niet van hetzelfde gegevenstype zijn, moet het gegevenstype voor één expressie impliciet worden omgezet in het gegevenstype van het andere. De conversie is gebaseerd op de regels van prioriteit van het gegevenstype.
Result Types
Boolean
Remarks
Wanneer u vergelijkt met behulp van een NULL-expressie, is het resultaat afhankelijk van de ANSI_NULLS instelling:
Als
ANSI_NULLSdit is ingesteld op AAN, is het resultaat van een vergelijking met NULL ONBEKEND, na de ANSI-conventie dat NULL een onbekende waarde is en kan niet worden vergeleken met een andere waarde, inclusief andere NULL's.Als
ANSI_NULLSdit is ingesteld op UIT, is het resultaat van het vergelijken van NULL met NULL WAAR en het resultaat van het vergelijken van NULL met een andere waarde ONWAAR.
Zie set ANSI_NULLS (Transact-SQL)voor meer informatie.
Een booleaanse expressie die resulteert in ONBEKEND gedraagt zich in de meeste gevallen op ONWAAR, maar niet in alle gevallen. Zie NULL en UNKNOWN (Transact-SQL) en NOT (Transact-SQL) voor meer informatie.
Examples
A. = gebruiken in een eenvoudige query
In het volgende voorbeeld wordt de operator Equals gebruikt om alle rijen in de HumanResources.Department tabel te retourneren waarin de waarde in de GroupName kolom gelijk is aan het woord 'Productie'.
-- Uses AdventureWorks
SELECT DepartmentID, Name
FROM HumanResources.Department
WHERE GroupName = 'Manufacturing';
Hier is het resultatenoverzicht.
DepartmentID Name
------------ --------------------------------------------------
7 Production
8 Production Control
(2 row(s) affected)
B. NULL- en niet-NULL-waarden vergelijken
In het volgende voorbeeld worden de vergelijkingsoperatoren Equals (=) en Not Equal To (<>) gebruikt om vergelijkingen te maken met NULL en niet-ullen in een tabel. In het voorbeeld ziet u ook dat IS NULL dit niet wordt beïnvloed door de SET ANSI_NULLS instelling.
-- 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 is het resultatenoverzicht.
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)
See Also
gegevenstypen (Transact-SQL)
Expressions (Transact-SQL)
Operators (Transact-SQL)