다음 SQL을 실행했을 때 결과 행의 수는?[강좌]강좌번호과목레벨수강료… | [SQLD] SQL 개발자 기출유형 모의고사 7회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 7회
다음 SQL을 실행했을 때 결과 행의 수는?[강좌]
| 강좌번호 | 과목 | 레벨 | 수강료 |
|---|---|---|---|
| 1 | 수학 | A | 90 |
| 2 | 수학 | B | 120 |
| 3 | 영어 | A | 80 |
| 4 | 영어 | B | 130 |
| 5 | 국어 | C | 100 |
| 6 | 과학 | B | 90 |
| 7 | 영어 | C | 150 |
SELECT 강좌번호, 과목 FROM 강좌 WHERE NOT 과목 = '수학' AND 수강료 >= 100 OR 레벨 = 'A' ORDER BY 강좌번호;
1
3
2
6
3
4
4
5
해설
우선순위가 NOT > AND > OR 이므로 조건은 ((NOT 과목='수학') AND 수강료>=100) OR 레벨='A' 로 묶여 강좌 4·5·7 과 레벨 A 인 1·3 이 남아 5행이다.
NOT 은 바로 뒤 비교식 하나에만 적용되고, 수학 강좌라도 레벨이 A 면 OR 오른쪽 조건으로 통과한다.
- NOT 을 뒤 조건 전체에 씌우면 4·5·6·7 의 4행이 된다.
- OR 을 먼저 묶으면 수학 강좌 1 이 빠져 3·4·5·7 의 4행이 된다.
- 레벨 A 조건까지 NOT 과 AND 로 묶였다고 보면 4·5·7 의 3행으로 줄어든다.
오류나 개정된 내용이 보이면 알려주세요