= (É igual a) (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsPDW (Analytics Platform System)Ponto de extremidade de SQL no Microsoft FabricWarehouse no Microsoft Fabric

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

Convenções de sintaxe de Transact-SQL

Sintaxe

expression = expression  

Observação

Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.

Argumentos

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

Tipos de resultado

Booliano

Comentários

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

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

  • Se ANSI_NULLS for definido como desativado, o resultado da comparação de NULL com NULL será TRUE, e o resultado da comparação de NULL com qualquer outro valor será FALSE.

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

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

Exemplos

a. Usando = em uma consulta simples

O exemplo a seguir usa o operador Igual a para retornar todas as linhas da tabela HumanResources.Department em que o valor na coluna GroupName é igual à palavra 'produção'.

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

Este é 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 Igual a (=) e Diferente de (<>) para fazer comparações com valores NULL e não nulos em uma tabela. O exemplo também mostra que IS NULL não é afetado pela configuração de 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;  

Este é 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)  
  

Consulte Também

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