Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
Azure Synapse Analytics
Elemzési platformrendszer (PDW)
SQL Analytics-végpont a Microsoft Fabricben
Raktár a Microsoft Fabricben
SQL-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_NULLSBE é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_NULLSKI é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)