쿼리(3)
-
[MSSQL] 0으로 나누기 오류가 발생
수치적으로 계산 시 0으로 나누기 오류가 발생된다.[오류 메세지] : "0으로 나누기 오류가 발생했습니다" 위와 같이 오류가 발생 시 쿼리 상단에 아래와 같은 코드를 박아준다. SET ANSI_WARNINGS OFF SET ARITHIGNORE ON SET ARITHABORT OFF
2014.03.20 -
[MSSQL] EXISTS, 조건 검색 처리
과거에는 소스단에서 분기하여 먼저 테이블을 검색하고 데이터가 있으면 다른 쿼리 없으면 또 다른 쿼리를 처리를 하였다. 하지만 생산성에서 무척이네 떨어진다.MSSQL에서는 EXITES 기능을 지원하여 아래와 같이 처리를 할 수 있다. IF EXISTS( SELECT IDX FROM TABLE_NM WHERE 1=1 And STD_NO = @STD_NO ) BEGIN -- 위 SELECT문의 결과값이 존재할 경우 실행하거라!! UPDATE TABLE_NM SET STATUS = @STATUS WHERE 1=1 And STD_NO = @STD_NO END ELSE BEGIN -- 위 SELECT문의 결과값이 없을 경우 실행하거라!! INSERT INTO TABLE_NM(STATUS, KOR_NM, SHYR, ..
2014.03.12 -
[MSSQL] RANK, 순위함수
[순위 함수 정리] 1) ROW_NUMBER() : 순차적으로 순위 결정SELECTROW_NUMBER() OVER(ORDER BY [컬럼] DESC) AS '순위'FROM [테이블] 2) DENSE_RANK() : 중복 순위가 있을 경우에도 강제로 순차적으로 순위 결정SELECTDENSE_RANK() OVER( BY [컬럼] DESC) As '순위'FROM [테이블] 3) RANK() : 중복 순위가 있을때 건너뛰고 순위 결정SELECTRANK() OVER( BY [컬럼] DESC) As '순위'FROM [테이블] 4) 그룹에 대한 순위... OVER(PARTITION BY [컬럼])예제: SELECTRANK() OVER (PARTITION BY X.[학년도], X.[학기], X.[대학코드], X.[학과..
2014.03.12