/********************************************************************************************
-- Title : [SQL2k8] 다양한 검색조건시 정적쿼리 구현
-- Reference : wipscorp.com
-- Key word : 정적 쿼리 static search condition
********************************************************************************************/
DECLARE @ID NVARCHAR(50), @CASE NVARCHAR(50)
, @SEL NVARCHAR(50)
SELECT @ID = '--', @CASE = '번호/미가입', @SEL = '1/99'
-- 검색 조건 설정
IF (@ID <> '--') -- LIKE문 처리위해 % 추가
SET @ID = '%' + @ID + '%';
IF (@CASE = 'CASE1/CASE2/CASE3') -- 전체 선택시 초기값 부여(NULL 존재시)
SET @CASE = '--';
IF (@SEL = 'SEL1/SEL2') -- 전체 선택시 초기값 부여
SET @CASE = '--';
-- 조건 조회
SELECT 회원_ID, ISNULL(CASE, '미가입') "CASE", ISNULL(SEL, 99) "SEL"
FROM schema1.회원 m
LEFT OUTER JOIN schema1.계약 c
ON m.회원_key=c.회원_key
LEFT OUTER JOIN schema1.상품 cp
ON c.회원_key=cp.회원_key
WHERE -- ID 선택시
(@ID = '--' OR 회원_id LIKE @ID)
-- CASE 조건
AND
(@CASE = '--' OR ISNULL(CASE, '미가입') IN (SELECT item
FROM dbo.fn_split(@CASE, N'/')))
-- SEL 조건
AND
(@SEL = '--' OR ISNULL(SEL, 99) IN (SELECT CAST(item AS SMALLINT)
FROM dbo.fn_split(@SEL, N'/')))