문법 |
bitand::=
![]()
그림 설명 : bitand(인수1,인수2)
목적 |
BITAND 함수는 인수1과 인수2의 비트에 대한 AND연산을 수행하여 정수를
반환한다. expr1과 expr2는 음이 아닌 정수로 변환되어, AND 연산을 계산하여 정수를 반환한다. 이 함수는 일반적으로 DECODE함수와
함께
이용하는데, 다음과 같이 설명할수 있다.
AND연산은 2개의 비트를 비교한다. 값이 같을 경우에는 1을 반환한다. 값이 다를 경우에는 0을
반환한다. 중요한 비트만 비교를 한다. 예를 들어, 정수 5(이진수 101)과 1(이진수 001)의 AND연산은 1(이진수 1)이다.
양쪽 인수는 임의의 수치 데이터형 또는 암묵적으로 NUMBER로 변환 가능한 수치 이외의 데이터형을
지정할수 있다.이 함수는 NUMBER를 반환환다.
SAS참고 |
http://www.statwith.pe.kr/SAS/1.FUNCTION/F0024.htm
예제 |
다음 예제는 oe.order 테이블에서 개별 비트에 의해 각 order_status를 표시한다.(이 예제는 총 7인 옵션을 지정하였기 때문에, order_status가 7을 넘는 행은 제외된다.) Location변수의 경우 비트 연산 결과가 1이면 'Warehouse' 아니면, 'Postoffice'를 반환한다.
SELECT order_id, customer_id,order_status DECODE(BITAND(order_status, 1), 1, 'Warehouse', 'PostOffice') Location, DECODE(BITAND(order_status, 2), 2, 'Ground', 'Air') Method, DECODE(BITAND(order_status, 4), 4, 'Insured', 'Certified') Receipt FROM oe.orders WHERE order_status < 8; ORDER_ID CUSTOMER_ID LOCATION MET RECEIPT ---------- ----------- ---------- --- --------- 2458 101 Postoffice Air Certified 2397 102 Warehouse Air Certified 2454 103 Warehouse Air Certified 2354 104 Postoffice Air Certified 2358 105 Postoffice G Certified 2381 106 Warehouse G Certified 2440 107 Warehouse G Certified 2357 108 Warehouse Air Insured 2394 109 Warehouse Air Insured 2435 144 Postoffice G Insured 2455 145 Warehouse G Insured . . .