= (равно) (Transact-SQL)

Проверяет равенство двух выражений (оператор сравнения) в SQL Server 2014.

Применимо для следующих объектов: SQL Server (SQL Server 2008 по текущую версию), База данных SQL Windows Azure (С первоначального выпуска по текущий выпуск).

Значок ссылки на раздел Cинтаксические обозначения в Transact-SQL

Синтаксис

expression = expression

Аргументы

  • expression
    Любое допустимое выражение. Если выражения относятся к разным типам данных, то тип данных одного выражения должен быть неявно доступным для преобразования в тип данных другого. Преобразование основано на правилах приоритетов типов данных.

Типы результата

Логическое выражение

Замечания

При сравнении двух выражений со значениями NULL результат зависит от параметра ANSI_NULLS.

  • Если параметр ANSI_NULLS равен ON, то результат будет равен NULL в соответствии со стандартом ANSI, когда NULL (или неизвестное) значение не равно NULL или другому неизвестному значению.

  • Если параметр ANSI_NULLS равен OFF, то результат сравнения двух значений NULL равен TRUE.

Сравнение значения NULL со значением, отличным от NULL, всегда дает результат FALSE. Дополнительные сведения см. в разделе SET ANSI_NULLS (Transact-SQL).

Примеры

А.Использование = в простом запросе

В следующем примере оператор равенства используется, чтобы возвратить все строки таблицы HumanResources.Department, в которых значение столбца GroupName равно слову «Manufacturing».

USE AdventureWorks2012;
GO
SELECT DepartmentID, Name
FROM HumanResources.Department
WHERE GroupName = 'Manufacturing';

Ниже приводится результирующий набор.

DepartmentID Name
------------ --------------------------------------------------
7            Production
8            Production Control

(2 row(s) affected)

Б.Сравнение значений NULL и значений, отличных от NULL

Следующий пример иллюстрирует использование операторов «равно» (=) и «не равно» (<>) для сравнения со значениями NULL и не NULL в таблице. Этот пример также демонстрирует, что использование конструкции IS NULL не зависит от значения параметра 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;

Ниже приводится результирующий набор.

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)

См. также

Справочник

Типы данных (Transact-SQL)

Выражения (Transact-SQL)

Операторы (Transact-SQL)