-- ORDER BY : 정렬
-- ASC : 오름차순(생략하면 오름차순)
-- DESC : 내림차순
-- 오름차순 정렬
SELECT name, basicpay FROM insa ORDER BY basicpay;
SELECT name, basicpay FROM insa ORDER BY basicpay ASC;
-- 내림차순 정렬
SELECT name, basicpay FROM insa ORDER BY basicpay DESC;
--부서별 오름차순으로 정렬하고 부서가 같으면 직위 오름차순 정렬( ㄱ 부터 A 부터 1부터)
SELECT name, buseo,jikwi FROM insa ORDER BY buseo, jikwi;
--부서별 내림차순으로 정렬하고 부서가 같으면 직위 오름차순 정렬(ㅎ 부터 Z 부터 9부터)
SELECT name, buseo,jikwi FROM insa ORDER BY buseo DESC, jikwi;
SELECT name, buseo,jikwi FROM insa ORDER BY buseo DESC, jikwi ASC;
-- 다음은 오류가 발생한다 이유가 무엇이고 오류가 없도록 수정 할 것.
SELECT name, basicpay,sudang,(basicpay + sudang) pay
FROM insa
WHERE pay >=2500000 -- WHERE절에는 pay라는 컬럼이 없다.
ORDER BY pay DESC;
=> 컴파일 순서에 따라서 오류가난다
SELECT name, basicpay,sudang,(basicpay + sudang) pay
FROM insa
WHERE (basicpay + sudang) >=2500000 -- WHERE절에는 pay라는 컬럼이 없다.
ORDER BY pay DESC; --ORDER BY는 가장 마지막에 컴파일 되므로 pay나 (basicpay + sudang) 둘중 아무거나 써도 상관없다.
-- city가 서울 사람중(basicpay + sudang) 내림차순으로 정렬하여 출력
-- 출력 컬럼 : name, city, basicpay + sudang pay, buseo
SELECT name, city,(basicpay+sudang) pay, buseo
FROM insa
WHERE city='서울'
ORDER BY pay DESC;
-- 여자 (ssn이 이용) 중 부서 오름차순으로 정렬하고 부서가 같으면 기본급 내림차순으로 정렬
-- 출력 컬럼 : name, ssn,buseo, basicpay
SELECT name, ssn, buseo, basicpay
FROM insa
WHERE SUBSTR(ssn, 8, 1) IN (2,4,6)
ORDER BY buseo ASC, basicpay DESC