^ (ビットごとの排他的 OR) (Transact-SQL)^ (Bitwise Exclusive OR) (Transact-SQL)

適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database はいAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance はいAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics はいParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database はいAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance はいAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics はいParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse

2 つの整数の間でビットごとの排他的 OR 演算を実行します。Performs a bitwise exclusive OR operation between two integer values.

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

構文Syntax

expression ^ expression  

注意

SQL Server 2014 以前の Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

引数Arguments

式 (expression)expression
整数データ型に分類されるデータ型のいずれか、または bit、または binary または varbinary データ型の有効な を指定します。Is any valid expression of any one of the data types of the integer data type category, or the bit, or the binary or varbinary data types. は、ビットごとの演算に対して 2 進数として扱われます。expression is treated as a binary number for the bitwise operation.

注意

ビットごとの演算では、1 つの のみが binary または varbinary データ型のいずれかになります。Only one expression can be of either binary or varbinary data type in a bitwise operation.

戻り値の型Result Types

入力値が int の場合は int です。int if the input values are int.

入力値が smallint の場合は smallint です。smallint if the input values are smallint.

入力値が tinyint の場合は tinyint です。tinyint if the input values are tinyint.

解説Remarks

ビットごとの ^ 演算子では、2 つの式の対応するビットを対象に、ビットごとの排他的論理 OR 演算が実行されます。The ^ bitwise operator performs a bitwise logical exclusive OR between the two expressions, taking each corresponding bit for both expressions. 入力式で現在処理対象となっているビットについて、両方ではなくいずれか一方のビットだけが 1 の場合、結果セットのビットは 1 に設定されます。The bits in the result are set to 1 if either (but not both) bits (for the current bit being resolved) in the input expressions have a value of 1. 両方のビットが 0 または 1 の場合、結果セットのビットはクリアされて 0 になります。If both bits are 0 or both bits are 1, the bit in the result is cleared to a value of 0.

左側の式と右側の式が異なる整数型の場合 (たとえば、左側の smallint 型で、右側の int 型の場合)、小さいデータ型の引数が大きいデータ型の引数に変換されます。If the left and right expressions have different integer data types (for example, the left expression is smallint and the right expression is int), the argument of the smaller data type is converted to the larger data type. この場合、smallint "" は int に変換されます。In this case, the smallint expression is converted to an int.

Examples

次の例では、int データ型を使用して元の値を格納するテーブルを作成し、1 行に 2 つの値を挿入します。The following example creates a table using the int data type to store the original values and inserts two values into one row.

CREATE TABLE bitwise (   
  a_int_value INT NOT NULL,  
  b_int_value INT NOT NULL);
GO  
INSERT bitwise VALUES (170, 75);  
GO  

次のクエリでは、a_int_value 列と b_int_value 列との間でビットごとの排他的論理 OR を実行します。The following query performs the bitwise exclusive OR on the a_int_value and b_int_value columns.

SELECT a_int_value ^ b_int_value  
FROM bitwise;  
GO  

結果セットは次のようになります。Here is the result set:

-----------   
225           
  
(1 row(s) affected)  

170 (a_int_value または A) をバイナリで表すと、0000 0000 1010 1010 になります。The binary representation of 170 (a_int_value or A) is 0000 0000 1010 1010. 75 (b_int_value または B) をバイナリで表すと、0000 0000 0100 1011 になります。The binary representation of 75 (b_int_value or B) is 0000 0000 0100 1011. 2 つの値に対してビットごとの排他的論理 OR 演算を実行すると、バイナリで 0000 0000 1110 0001 が生成されます。これは 10 進数では 225 です。Performing the bitwise exclusive OR operation on these two values produces the binary result 0000 0000 1110 0001, which is decimal 225.

(A ^ B)     
         0000 0000 1010 1010  
         0000 0000 0100 1011  
         -------------------  
         0000 0000 1110 0001  

参照See Also

式 (Transact-SQL) Expressions (Transact-SQL)
演算子 (Transact-SQL) Operators (Transact-SQL)
ビットごとの演算子 (Transact-SQL) Bitwise Operators (Transact-SQL)
^= (ビットごとの排他的 OR 代入) (Transact-SQL) ^= (Bitwise Exclusive OR Assignment) (Transact-SQL)
複合演算子 (Transact-SQL)Compound Operators (Transact-SQL)