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 ( 13 ) 처럼 IN 조건을 걸어 조회하였다.
 
이번 회사에서는 IN 조건 대신, BIT 연산을 이용하여 조회를 한다.
 
USESTATE 정의 값이 달라지는데,
 
12481632.... 와 같이 정의를 해주어야 한다.
 
이유는 해당 값을 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

'개발 > MSSQL' 카테고리의 다른 글

ISNULL, COALESCE  (2) 2017.01.09
Like 문 쓰지말자  (4) 2017.01.09
SQL NOCOUNT ON  (0) 2016.03.14
SQL ANSI_NULLS  (0) 2016.03.14
SQL SET IDENTITY_INSERT  (0) 2016.03.11

+ Recent posts