본문 바로가기
MS-SQL

WHERE 밑으로 쓰는 조건 모음

by 캡틴노랑이 2015. 7. 27.
반응형

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

반응형

댓글