Language/SQL
[SQL] 다중 행 서브쿼리 - 다중 행 비교 연산자
eunzae
2022. 12. 13. 15:38
다중 행 비교 연산자
연산자 | 연산자 뜻 |
IN | 하나라도 만족하면 참 |
ANY | 내부적으로 모두 OR 연산을 함 |
ALL | 내부적으로 모두 AND 연산을 함 |
1. IN
SELECT * FROM TABLE WHERE score IN(60,70,80);
SELECT * FROM TABLE WHERE score='60' OR score='70' OR score='80';
2. ANY
/* '='연산자 */
SELECT * FROM TABLE WHERE score =ANY(60,70,80);
SELECT * FROM TABLE WHERE score='60' OR score='70' OR score='80';
/* '>'연산자 */
SELECT * FROM TABLE WHERE score >ANY(60,70,80);
SELECT * FROM TABLE WHERE score>'60' OR score>'70' OR score>'80';
-- 즉 이 쿼리의 결과는 score가 60보다 큰 값을 모두 출력
/* '<'연산자 */
SELECT * FROM TABLE WHERE score <ANY(60,70,80);
SELECT * FROM TABLE WHERE score<'60' OR score<'70' OR score<'80';
-- 즉 이 쿼리의 결과는 score가 80보다 작은 값을 모두 출력
3. ALL
/* '='연산자 */
SELECT * FROM TABLE WHERE score =ALL(60,70,80);
SELECT * FROM TABLE WHERE score='60' AND score='70' AND score='80';
/* '>'연산자 */
SELECT * FROM TABLE WHERE score >ALL(60,70,80);
SELECT * FROM TABLE WHERE score>'60' AND score>'70' AND score>'80';
-- 즉 이 쿼리의 결과는 score가 80보다 큰 값만 출력
/* '<'연산자 */
SELECT * FROM TABLE WHERE score <ALL(60,70,80);
SELECT * FROM TABLE WHERE score<'60' AND score<'70' AND score<'80';
-- 즉 이 쿼리의 결과는 score가 60보다 작은 값만 출력