= (等しい) (Transact-SQL)= (Equals) (Transact-SQL)

適用対象: ○SQL Server (2008 以降) ○Azure SQL Database ○Azure SQL Data Warehouse ○Parallel Data Warehouse APPLIES TO: yesSQL Server (starting with 2008) yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

SQL ServerSQL Server で 2 つの式の等価性を比較します (比較演算子)。Compares the equality of two expressions (a comparison operator) in SQL ServerSQL Server.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

expression = expression  

引数Arguments

式 (expression)expression
任意の有効なを指定します。Is any valid expression. 2 つの式のデータ型が異なる場合、1 つの式のデータ型がもう一方の式のデータ型に暗黙的に変換可能である必要があります。If the expressions are not of the same data type, the data type for one expression must be implicitly convertible to the data type of the other. 変換は、データ型の優先順位のルールに基づいています。The conversion is based on the rules of data type precedence.

戻り値の型Result Types

BooleanBoolean

RemarksRemarks

NULL 式を使用して比較した場合、結果は ANSI_NULLS の設定に応じて以下のように異なります。When you compare using a NULL expression, the result depends on the ANSI_NULLS setting:

  • ANSI_NULLS が ON に設定されている場合、NULL は不明な値であり、別の NULL を含む、他の値と比較できないという ANSI 規則に従って、NULL との比較結果が UNKNOWN となります。If ANSI_NULLS is set to ON, the result of any comparison with NULL is UNKNOWN, following the ANSI convention that NULL is an unknown value and cannot be compared with any other value, including other NULLs.

  • ANSI_NULLS が OFF に設定されている場合、NULL 同士の比較結果は TRUE となり、NULL と他の値の比較結果は FALSE となります。If ANSI_NULLS is set to OFF, the result of comparing NULL to NULL is TRUE, and the result of comparing NULL to any other value is FALSE.

詳細については、「SET ANSI_NULLS (Transact-SQL)」をご覧ください。For more information, see SET ANSI_NULLS (Transact-SQL).

結果が UNKNOWN となるブール式は、ほとんどの場合、FALSE と同じように動作しますが、すべての場合ではありません。A boolean expression resulting in UNKNOWN behaves similarly to FALSE in most, but not all cases. 詳細については、「NULL と UNKNOWN (Transact-SQL)」と「NOT (Transact-SQL)」を参照してください。See NULL and UNKNOWN (Transact-SQL) and NOT (Transact-SQL) for more information.

使用例Examples

A.A. 簡単なクエリで = を使用するUsing = in a simple query

次の例では、等号演算子を使用して、HumanResources.Department テーブル内の GroupName 列の値が "Manufacturing" という単語と等しいすべての行を返します。The following example uses the Equals operator to return all rows in the HumanResources.Department table in which the value in the GroupName column is equal to the word 'Manufacturing'.

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

以下に結果セットを示します。Here is the result set.

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

B.B. NULL 値と NULL 以外の値を比較するComparing NULL and non-NULL values

次の例では、= (等号) 比較演算子と <> (不等号) 比較演算子を使用して、テーブル内の NULL 値と NULL 以外の値を比較します。The following example uses the Equals (=) and Not Equal To (<>) comparison operators to make comparisons with NULL and nonnull values in a table. 例は IS NULLSET ANSI_NULLS 設定に影響されないことも示しています。The example also shows that IS NULL is not affected by the SET ANSI_NULLS setting.

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

以下に結果セットを示します。Here is the result set.

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)  
  

参照See Also

データ型 (Transact-SQL) Data Types (Transact-SQL)
式 (Transact-SQL) Expressions (Transact-SQL)
演算子 (Transact-SQL)Operators (Transact-SQL)