Oracle® Database SQL Reference 10g Release 1 (10.1) Part Number B10759-01 |
|
|
View PDF |
BITAND
computes an AND
operation on the bits of expr1
and expr2
, both of which must resolve to nonnegative integers, and returns an integer. This function is commonly used with the DECODE
function, as illustrated in the example that follows.
Both arguments can be any numeric datatype, or any nonnumeric datatype that can be implicitly converted to NUMBER
. The function returns NUMBER
.
Note: This function does not determine the datatype of the value returned. Therefore, in SQL*Plus, you must specifyBITAND in a wrapper, such as TO_NUMBER , which returns a datatype. |
The following represents each order_status
in the sample table oe.orders
by individual bits. (The example specifies options that can total only 7, so rows with order_status
greater than 7 are eliminated.)
SELECT order_id, customer_id, 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 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 . . .