Partilhar via


= (Igual) (Transact-SQL)

Aplica-se a:SQL ServerBase de Dados SQL do AzureInstância Gerida do Azure SQLAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Ponto de Extremidade de Análise SQL no Microsoft FabricArmazém no Microsoft FabricBase de Dados SQL no Microsoft Fabric

Compara a igualdade de duas expressões (um operador de comparação) no SQL Server.

Transact-SQL convenções de sintaxe

Syntax

expression = expression  

Arguments

expression
É qualquer expressão válida. Se as expressões não forem do mesmo tipo de dados, o tipo de dados de uma expressão deve ser implicitamente convertível para o tipo de dados da outra. A conversão é baseada nas regras de precedência do tipo de dados.

Tipos de Resultados

booleano

Remarks

Quando você compara usando uma expressão NULL, o resultado depende da ANSI_NULLS configuração:

  • Se ANSI_NULLS estiver definido como ON, o resultado de qualquer comparação com NULL é UNKNOWN, seguindo a convenção ANSI de que NULL é um valor desconhecido e não pode ser comparado com qualquer outro valor, incluindo outros NULLs.

  • Se ANSI_NULLS estiver definido como OFF, o resultado da comparação de NULL com NULL é TRUE e o resultado da comparação de NULL com qualquer outro valor é FALSE.

Para obter mais informações, consulte SET ANSI_NULLS (Transact-SQL).

Uma expressão booleana que resulta em UNKNOWN se comporta de forma semelhante a FALSE na maioria, mas não em todos os casos. Consulte NULL e UNKNOWN (Transact-SQL) e NOT (Transact-SQL) para obter mais informações.

Examples

A. Usando = em uma consulta simples

O exemplo a seguir usa o operador Equals para retornar todas as linhas na tabela em que o HumanResources.DepartmentGroupName valor na coluna é igual à palavra 'Manufacturing'.

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

Aqui está o conjunto de resultados.

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

B. Comparando valores NULL e não-NULL

O exemplo a seguir usa os operadores de comparação Equals (=) e Not Equal To (<>) para fazer comparações com NULL e valores não nulos em uma tabela. O exemplo também mostra que IS NULL não é afetado SET ANSI_NULLS pela configuração.

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

Aqui está o conjunto de resultados.

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)  
  

Ver também

Tipos de dados (Transact-SQL)
Expressões (Transact-SQL)
Operadores (Transact-SQL)