Aracılığıyla paylaş


= (Eşittir) (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnaliz Platformu Sistemi (PDW)Microsoft Fabric'teki SQL analiz uç noktasıMicrosoft Fabric'teki ambarMicrosoft Fabric'teki SQL veritabanı

SQL Server'da iki ifadenin (karşılaştırma işleci) eşitliğini karşılaştırır.

Transact-SQL söz dizimi kuralları

Syntax

expression = expression  

Arguments

expression
Geçerli bir ifadedir. İfadeler aynı veri türünde değilse, bir ifadenin veri türü örtük olarak diğerinin veri türüne dönüştürülebilir olmalıdır. Dönüştürme, veri türü önceliği kurallarına bağlıdır.

Sonuç Türleri

Boolean

Remarks

NULL ifadesi kullanarak karşılaştırma yaptığınızda, sonuç şu ayara ANSI_NULLS bağlıdır:

  • ON olarak ayarlanırsa ANSI_NULLS , NULL ile yapılan herhangi bir karşılaştırmanın sonucu BİlİNMİYOR olur ve ANSI kuralına göre NULL bilinmeyen bir değerdir ve diğer DLL'ler de dahil olmak üzere başka bir değerle karşılaştırılamaz.

  • KAPALI olarak ayarlanırsa ANSI_NULLS , NULL ile NULL karşılaştırmasının sonucu TRUE olur ve NULL değerini başka bir değerle karşılaştırmanın sonucu YANLIŞ olur.

Daha fazla bilgi için bkz. SET ANSI_NULLS (Transact-SQL).

BİlİNMEYEN sonuçlu bir boole ifadesi çoğu durumda YANLIŞ'a benzer şekilde davranır, ancak tüm durumlarda böyle davranmaz. Daha fazla bilgi için bkz. NULL ve UNKNOWN (Transact-SQL) ve NOT (Transact-SQL).

Examples

A. Basit bir sorguda = kullanma

Aşağıdaki örnek, sütundaki HumanResources.Department değerin 'Manufacturing' sözcüğüne eşit olduğu tablodaki GroupName tüm satırları döndürmek için Eşittir işlecini kullanır.

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

Sonuç kümesi aşağıdadır.

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

B. NULL ve NULL olmayan değerleri karşılaştırma

Aşağıdaki örnek, bir tablodaki ve olmayan değerlerle = karşılaştırma yapmak için Eşittir (<>) ve Eşit Değil (NULL) karşılaştırma işleçlerini kullanır. Örnekte, ayarın IS NULL etkilenmediği SET ANSI_NULLS de gösterilir.

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

Sonuç kümesi aşağıdadır.

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)  
  

Ayrıca Bkz.

Veri Türleri (Transact-SQL)
İfadeler (Transact-SQL)
İşleçler (Transact-SQL)