Megosztás a következőn keresztül:


= (Egyenlő) (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)SQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

Két kifejezés (összehasonlító operátor) egyenlőségét hasonlítja össze az SQL Serverben.

Transact-SQL szintaxis konvenciók

Syntax

expression = expression  

Arguments

expression
Bármely érvényes kifejezés. Ha a kifejezések nem azonos adattípusúak, az egyik kifejezés adattípusának implicit módon konvertálhatónak kell lennie a másik adattípusára. Az átalakítás az adattípus-elsőbbséget élvező szabályokon alapul.

Eredménytípusok

logikai

Remarks

Null értékű kifejezés összehasonlítása esetén az eredmény a ANSI_NULLS beállítástól függ:

  • Ha ANSI_NULLS BE értékre van állítva, a NULL-val való összehasonlítás eredménye ISMERETLEN, az ANSI-konvenciót követve, amely szerint a NULL ismeretlen érték, és nem hasonlítható össze más értékekkel, beleértve a többi NULL-t is.

  • Ha ANSI_NULLS KI értékre van állítva, akkor a NULL és a NULL összehasonlítása eredménye IGAZ, a NULL és bármely más érték összehasonlítása eredménye PEDIG HAMIS.

További információ: SET ANSI_NULLS (Transact-SQL).

Az ISMERETLEN értéket eredményező logikai kifejezések a legtöbb esetben a FALSE függvényhez hasonlóan viselkednek, de nem minden esetben. További információt a NULL és AZ ISMERETLEN (Transact-SQL) és a NOT (Transact-SQL) című témakörben talál.

Examples

A. Egyszerű lekérdezésben = használata

Az alábbi példa az Egyenlőség operátort használja annak a táblázatnak az HumanResources.Department összes sorának visszaadására, amelyben az GroupName oszlop értéke megegyezik a "Gyártás" szóval.

-- Uses AdventureWorks  
  
SELECT DepartmentID, Name  
FROM HumanResources.Department  
WHERE GroupName = 'Manufacturing';  

Itt van az eredmények összessége.

  
DepartmentID Name  
------------ --------------------------------------------------  
7            Production  
8            Production Control  
  
(2 row(s) affected)  
  

B. NULL és nem NULL értékek összehasonlítása

Az alábbi példa az Egyenlőség (=) és a Not Equal To (<>) összehasonlító operátorokat használja a táblázatban lévő és nem nukleáris értékekkel NULL való összehasonlításhoz. A példa azt is mutatja, hogy IS NULL a beállítás nem befolyásolja.SET ANSI_NULLS

-- 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;  

Itt van az eredmények összessége.

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)  
  

Lásd még:

adattípusok (Transact-SQL)
Kifejezések (Transact-SQL)
Operátorok (Transact-SQL)