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 조건만 검색하게 된다.

AND