WHERE 밑으로 쓰는 조건 모음
WHERE 1=1
--CASE WHEN 조건
AND (a.JobGrpCode = CASE WHEN @IsSearchType= '1' THEN '99' ELSE a.JobGrpCode END )
AND (@BelongCode = '' OR CASE WHEN @IsSearchType = '1' THEN b.CoCode ELSE a.DeptCode END = @BelongCode
AND (a.JobGrpCode = CASE WHEN @IsSearchType= '1' THEN '99' ELSE a.JobGrpCode END )
--게시판등의 검색 타입 등에 따른 검색이 달라지는 경우 OR검색일 경우 앞이 참이면 뒤는 검색 안함.
AND (@Keyword ='' OR @LikeSearchType IN (1, 2, 3) OR ISNULL(a.EmpNo, '') + ISNULL(a.Name, '') + ISNULL(a.MobilePhone, '') LIKE '%' + @Keyword +'%')--전체 검색. ㅋㅋㅋ 이거 밖에 없네. ㅜㅜ
AND (@Keyword ='' OR @LikeSearchType IN (0, 2, 3) OR a.EmpNo LIKE '%' + @Keyword +'%')--사번
AND (@Keyword ='' OR @LikeSearchType IN (0, 1, 3) OR a.Name LIKE '%' + @Keyword +'%')--이름
AND (@Keyword ='' OR @LikeSearchType IN (0, 1, 2) OR a.MobilePhone LIKE '%' + @Keyword +'%')--비고
DateTIme형 자료를 날짜 비교해서 해당 범위내의 자료를 뽑기 위해서 아래와 같이 날짜 비교시 DateTIme이 아니더라도 됨.
AND DATEDIFF(DAY, b.SchdDate, @SchdDateFrom) <= 0
AND DATEDIFF(DAY, b.SchdDate, @SchdDateTo) >= 0
예 --기준일 2013-12-13
SELECT DATEDIFF(DAY, '20131213', '20131201') 12
SELECT DATEDIFF(DAY, '20131205', '20131231') 26
SELECT DATEDIFF(DAY, GETDATE(), '20131201') -12
SELECT DATEDIFF(DAY, GETDATE(), '20131231') 18