다음 중 직원(사원번호, 부서명, 이름, 나이, 근무년수, 급여) 테이… | [컴퓨터활용능력 1급 필기] 19년 1회차 기출문제 상세 페이지
1[컴퓨터활용능력 1급 필기] 19년 1회차
다음 중 직원(사원번호, 부서명, 이름, 나이, 근무년수, 급여) 테이블에서 '근무년수'가 3 이상인 직원들을 나이가 많은 순서대로 조회하되, 같은 나이일 경우 급여의 오름 차순으로 모든 필드를 표시하는 SQL문은?
1
select * from 직원 where 근무년수 >= 3 order by 나이, 급여
2
select * from 직원 order by 나이, 급여 where 근무 년수 >= 3
3
select * from 직원 order by 나이 desc, 급여 asc where 근무년수 >= 3
4
select * from 직원 where 근무년수 >= 3 order by 나이 desc, 급여 asc
해설
SQL 문법상 조건을 지정하는 WHERE절은 정렬을 지정하는 ORDER BY절보다 앞에 와야 한다. 따라서 ORDER BY 뒤에 WHERE가 오는 구문은 문법 오류다.
나이가 많은 순서로 정렬하려면 나이를 내림차순(DESC)으로, 같은 나이일 때 급여의 오름차순은 기본 정렬 방식이므로 별도 표기 없이(또는 ASC로) 지정하면 된다. 정렬 방식을 생략해 나이가 오름차순으로 정렬되는 구문은 '나이가 많은 순서'라는 조건을 만족하지 못한다.
결국 근무년수 조건을 WHERE절에 두고, 정렬을 ORDER BY 나이 DESC, 급여 ASC로 지정한 구문이 모든 조건을 만족한다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.