개발/MSSQL
BIT 연산
한번사는인생.
2016. 6. 21. 13:33
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 |
이전 회사에서는 USESTATE라는 변수를 이용하여 상태값을 관리하였다.
예를 들면 USESTATE ( 1:정상, 2:비정상, 3:삭제 ) 였다.
이때, 여러가지 상태값을 조회할때는 USESTATE IN ( 1, 3 ) 처럼 IN 조건을 걸어 조회하였다.
이번 회사에서는 IN 조건 대신, BIT 연산을 이용하여 조회를 한다.
USESTATE 정의 값이 달라지는데,
1, 2, 4, 8, 16, 32.... 와 같이 정의를 해주어야 한다.
이유는 해당 값을 2진수로 변경하면 아래와 같다.
1 : 00001
2 : 00010
4 : 00100
8 : 01000
16 : 10000
예를 들어 1, 4를 조회 하기 위해서는
00001 과 00100 을 AND 연산을 하게 되면 00101 인 5로 조회하면 된다.
SELECT *
FROM DBO.TABLE WITH (NOLOCK)
WHERE USESTATE & 5 > 0 |
cs |