다음을 통해 공유


^(배타적 비트 OR)(Transact-SQL)

두 정수 값 사이에 배타적 비트 OR 연산을 수행합니다.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

expression ^ expression

인수

expression

정수 데이터 형식 범주에 속하는 데이터 형식 중 하나를 사용하거나 bit, binary 또는 varbinary 데이터 형식 중 하나를 사용한 유효한 입니다. 비트 연산의 경우 expression은 이진수로 처리됩니다.

[!참고] 비트 연산에서는 하나의 expressionbinary 또는 varbinary 데이터 형식이 될 수 있습니다.

주의

^ 비트 연산자는 양쪽 연산에 해당 비트를 받아서 두 식 간에 배타적 비트 논리 OR를 수행합니다. 결과 비트는 입력 식에 있는 두 비트(확인 중인 현재 비트) 중 하나의 값이 1이면 1로 설정됩니다. 양쪽 비트 값이 모두 0 또는 1이면 결과 비트는 0으로 처리됩니다.

왼쪽과 오른쪽 식이 서로 다른 정수 데이터 형식을 가질 경우(예: 왼쪽 expressionsmallint이고 오른쪽 expressionint) 더 작은 데이터 형식의 인수가 더 큰 데이터 형식으로 변환됩니다. 이 경우 smallintexpressionint로 변환됩니다.

결과 유형

입력 값이 int인 경우 int

입력 값이 smallint인 경우 smallint

입력 값이 tinyint인 경우 tinyint

다음 예에서는 원래 값을 저장하기 위해 int 데이터 형식을 사용하여 원래 값을 저장하는 테이블을 만들고 한 행에 두 개의 값을 삽입합니다.

USE tempdb;
GO
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES 
    WHERE TABLE_NAME = 'bitwise')
DROP TABLE bitwise;
GO
CREATE TABLE bitwise
( 
a_int_value int NOT NULL,
b_int_value int NOT NULL
);
GO
INSERT bitwise VALUES (170, 75);
GO

다음 쿼리는 a_int_valueb_int_value 열에 배타적 비트 OR를 수행합니다.

USE tempdb;
GO
SELECT a_int_value ^ b_int_value
FROM bitwise;
GO

결과 집합은 다음과 같습니다.

----------- 
225         

(1 row(s) affected)

170의 이진 표현(a_int_value 또는 A)은 0000 0000 1010 1010입니다. 75의 이진 표현(b_int_value 또는 B)은 0000 0000 0100 1011입니다. 이러한 두 값에 배타적 비트 OR 연산을 수행하면 결과는 이진수 0000 0000 1110 0001이며 십진수로는 225입니다.

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

참고 항목

참조

식(Transact-SQL)
연산자(Transact-SQL)

관련 자료

비트 연산자(데이터베이스 엔진)

도움말 및 정보

SQL Server 2005 지원 받기