|(비트 OR)(Transact-SQL)

Transact-SQL 문에서 이진 식으로 변환되는 두 개의 지정된 정수 값 간에 비트 논리 OR 연산을 수행합니다.

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

구문

expression | expression

인수

  • expression
    정수 데이터 형식 범주나 bit, binary 또는 varbinary 데이터 형식의 유효한 입니다. expression은 비트 연산을 위해 이진 숫자로 처리됩니다.

    [!참고]

    비트 연산에서는 하나의 expression만 binary 또는 varbinary 데이터 형식이 될 수 있습니다.

결과 형식

입력 값이 int인 경우에는 int, 입력 값이 smallint인 경우에는 smallint, 입력 값이 tinyint인 경우에는 tinyint를 반환합니다.

주의

비트 | 연산자는 양쪽 식에 해당 비트를 취하면서 두 식 간에 비트 논리 OR를 수행합니다. 결과의 비트는 입력 식의 두 비트(확인 중인 현재 비트) 중 하나 또는 둘 모두의 값이 1이면 1로 설정됩니다. 입력 식에 값이 1인 비트가 없으면 결과의 비트는 0으로 설정됩니다.

왼쪽과 오른쪽 식의 정수 데이터 형식이 서로 다르면(예: 왼쪽 expression은 smallint이고 오른쪽 expression은 int임) 더 작은 데이터 형식의 인수가 더 큰 데이터 형식으로 변환됩니다. 이 경우 smallintexpression이 int로 변환됩니다.

다음 예에서는 원래 값을 표시하도록 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

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

----------- 
235         

(1 row(s) affected)

170(a_int_value 또는 아래 예의 A)의 이진 표현은 0000 0000 1010 1010입니다. 75(b_int_value 또는 아래 예의 B)의 이진 표현은 0000 0000 0100 1011입니다. 이 두 값에 비트 OR 연산을 수행하면 10진수 235에 해당되는 이진 결과 0000 0000 1110 1011이 산출됩니다.

(A | B)
0000 0000 1010 1010
0000 0000 0100 1011
-------------------
0000 0000 1110 1011