[MSSQL]이런 쿼리 짤 수 있을까요? 0 6 481

by 준일정 [SQL Query] [2018.03.29 13:48:40]


114343434.png (38,675Bytes)

--detpno를 내림차순할겁니다. 조건이 있는데 deptno=10인 데이터들은 sal을 내림차순 할 것이고 
--deptno가 10이 아니면 sal을 오름차순 할겁니다. 

(왼쪽이 기존데이터이고 오른쪽이 제가 원하는 데이터인데, 이걸 쿼리로 날려서 결과값을 보고 싶은데 방법을 잘 모르겠습니다. )

 

*참고

SELECT deptno, ename, sal FROM emp ORDER BY deptno DESC,
CASE WHEN deptnO=10 THEN sal ELSE SAL END;

(이러면 될거 같았는데 DEPTNO=10 인 데이터의 SAL이 내림차순이 아닌 오름차순이 되었습니다.)
 

by 우리집아찌 [2018.03.29 13:56:35]
-- 몇일전에 마농님이 짜준신건데...
SELECT DEPTNO , ENAME , SAL
  FROM  (SELECT DEPTNO , ENAME , SAL
              , ROW_NUMBER() OVER(ORDER BY SAL ) RN_ASC
              , ROW_NUMBER() OVER(ORDER BY SAL DESC ) RN_DESC
          FROM EMP
        )
 ORDER BY DEPTNO DESC , CASE WHEN DEPTNO = 10 THEN RN_DESC ELSE RN_ASC END

 


by 우리집아찌 [2018.03.29 13:57:32]

오늘도 또 짜주셨는데 왜 저렇게 짜셨는지..


by 마농 [2018.03.29 13:57:15]
-- sal 이 숫자라서 가능한 방법(마이너스 붙이기)
SELECT deptno
     , ename
     , sal
  FROM emp
 ORDER BY deptno DESC
     , CASE WHEN deptno = 10 THEN -sal ELSE sal END
;

 


by 우리집아찌 [2018.03.29 13:58:15]

아.. 또 까먹었네요..

밤새고 나면 정신이 없어서.. ㅎㅎ


by 마농 [2018.03.29 14:11:21]
-- 숫자가 아닌 항목인 경우 2개 항목으로 분리하여 정렬
SELECT deptno
     , ename
     , job
  FROM emp
 ORDER BY deptno DESC
     , CASE WHEN deptno  = 10 THEN job END DESC
     , CASE WHEN deptno != 10 THEN job END ASC
;

 


by 준일정 [2018.03.29 14:14:55]

대단하십니다 정말로...

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입