DECLARE
@value1 varchar(10),
@value2 varchar(20)
SET @value1 = ''
SET @value2 = 'value'
SELECT * FROM [TABLE] WITH(NOLOCK)
WHERE
([COL1] = '' OR [COL1] = @value1)
AND ([COL2] = '' OR [COL2] = @value2)
위와 같이 사용하면 조건값이 '' 이면 참이 되어 OR 뒤의 조건이 실행되지 않는다.
때문에 [COL1] = @value1의 조건은 무시되고 [COL2] = @value2 조건만 검색하게 된다.
'SQL > MS-SQL' 카테고리의 다른 글
[SQL] Split 구현하기 (8) | 2010.01.27 |
---|---|
[SQL] 여러 로우를 하나의 로우(필드, 컬럼)으로 합치기 (0) | 2010.01.25 |
MS-SQL 2005에서 페이징 처리 (2) | 2008.04.28 |