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 |
'개발 > 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 |