Bagikan melalui


= (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.

Konvensi sintaks transact-SQL

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)