= (Sama dengan) (Transact-SQL)
Berlaku untuk: Titik akhir analitik SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Platform System (PDW) SQL di Microsoft Fabric Warehouse di Microsoft Fabric
Membandingkan kesetaraan dua ekspresi (operator perbandingan) di SQL Server.
Sintaks
expression = expression
Argumen
expression
Adalah ekspresi yang valid. Jika ekspresi bukan dari jenis data yang sama, jenis data untuk satu ekspresi harus secara implisit dapat dikonversi ke jenis data yang lain. Konversi didasarkan pada aturan prioritas jenis data.
Jenis Hasil
Boolean
Keterangan
Saat Anda membandingkan menggunakan ekspresi NULL, hasilnya bergantung pada ANSI_NULLS
pengaturan:
Jika
ANSI_NULLS
diatur ke AKTIF, hasil perbandingan apa pun dengan NULL TIDAK DIKETAHUI, mengikuti konvensi ANSI bahwa NULL adalah nilai yang tidak diketahui dan tidak dapat dibandingkan dengan nilai lain, termasuk NULL lainnya.Jika
ANSI_NULLS
diatur ke NONAKTIF, hasil membandingkan NULL dengan NULL adalah TRUE, dan hasil membandingkan NULL dengan nilai lain adalah FALSE.
Untuk informasi selengkapnya, lihat SET ANSI_NULLS (Transact-SQL).
Ekspresi boolean yang mengakibatkan UNKNOWN berperilaku mirip dengan FALSE di sebagian besar, tetapi tidak semua kasus. Lihat NULL dan UNKNOWN (Transact-SQL) dan NOT (Transact-SQL) untuk informasi selengkapnya.
Contoh
J. Menggunakan = dalam kueri sederhana
Contoh berikut menggunakan operator Equals untuk mengembalikan semua baris dalam HumanResources.Department
tabel di mana nilai dalam GroupName
kolom sama dengan kata 'Manufacturing'.
-- Uses AdventureWorks
SELECT DepartmentID, Name
FROM HumanResources.Department
WHERE GroupName = 'Manufacturing';
Berikut set hasilnya.
DepartmentID Name
------------ --------------------------------------------------
7 Production
8 Production Control
(2 row(s) affected)
B. Membandingkan nilai NULL dan non-NULL
Contoh berikut menggunakan operator perbandingan Equals (=
) dan Not Equal To (<>
) untuk membuat perbandingan dengan NULL
dan nilai nonnull dalam tabel. Contoh juga menunjukkan bahwa IS NULL
tidak terpengaruh oleh SET ANSI_NULLS
pengaturan.
-- 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;
Berikut set hasilnya.
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)
Lihat Juga
Tipe Data (Transact-SQL)
Ekspresi (Transact-SQL)
Operator (Transact-SQL)