= (Igual a) (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Punto de conexión de análisis SQL en Microsoft Fabric Almacenamiento en Microsoft Fabric
Compara la igualdad de dos expresiones (un operador de comparación) en SQL Server.
Convenciones de sintaxis de Transact-SQL
Sintaxis
expression = expression
Argumentos
expression
Es cualquier expresión válida. Si las expresiones no tienen el mismo tipo de datos, el tipo de datos para una expresión debe ser convertible de forma implícita al tipo de datos de la otra expresión. La conversión se basa en las reglas de prioridad de tipo de datos.
Tipos de resultado
Boolean
Comentarios
Al comparar mediante una expresión NULL, el resultado depende de la configuración de ANSI_NULLS
:
Si
ANSI_NULLS
se establece en ON, el resultado de las comparaciones con NULL es UNKNOWN, según la convención ANSI de que NULL es un valor desconocido y no se puede comparar con ningún otro, incluidos otros valores NULL.Si
ANSI_NULLS
se establece en OFF, el resultado de la comparación de NULL con NULL es TRUE, y el resultado de la comparación de NULL con cualquier otro valor es FALSE.
Para obtener más información, vea SET ANSI_NULLS (Transact-SQL).
Una expresión booleana que da como resultado UNKNOWN se comporta de forma similar en FALSE en la mayoría de los casos, aunque no en todos. Vea NULL and UNKNOWN (Transact-SQL) y NOT (Transact-SQL) para obtener más información.
Ejemplos
A. Usar = en una consulta simple
En el ejemplo siguiente se usa el operador Es igual a para devolver todas las filas de la tabla HumanResources.Department
en las que el valor de la columna GroupName
es igual a la palabra 'Manufacturing'.
-- Uses AdventureWorks
SELECT DepartmentID, Name
FROM HumanResources.Department
WHERE GroupName = 'Manufacturing';
Este es el conjunto de resultados.
DepartmentID Name
------------ --------------------------------------------------
7 Production
8 Production Control
(2 row(s) affected)
B. Comparar valores NULL y distintos de NULL
En el ejemplo siguiente se utilizan los operadores de comparación Es igual a (=
) y No es igual a (<>
) para realizar comparaciones con valores NULL
y distintos de NULL en una tabla. En este ejemplo también se muestra que IS NULL
no se ve afectado por el valor 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 es el 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 también
Tipos de datos (Transact-SQL)
Expresiones (Transact-SQL)
Operadores (Transact-SQL)