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보다 작은 값만 출력