PostgreSQL ANY연산자를 사용하여 스칼라 값을 하위 쿼리에서 반환된 값 집합과 비교하는 방법
PostgreSQL ANY연산자는 값을 하위 쿼리에서 반환된 값 집합과 비교합니다.
expresion operator ANY(subquery)
- 하위 쿼리는 정확히 하나의 열을 반환해야합니다.
- ANY연산자는 다음 비교 연산자 =, <=,>, <>와 <> 중 하나가 선행되어야합니다.
- ANY서브 쿼리의 값이 조건을 충족하는 경우 운영자는, 그렇지 않으면 false를 반환 true를 돌려줍니다.
반응형
1) ANY 예
-- 영화의 최대 길이 반환하는 쿼리
SELECT
MAX( length )
FROM
film
INNER JOIN film_category
USING(film_id)
GROUP BY
category_id;
-- 길이가 영화 카테고리의 최대 길이보다 크거나 같은 영화를 찾는 쿼리
SELECT title
FROM film
WHERE length >= ANY(
SELECT MAX( length )
FROM film
INNER JOIN film_category USING(film_id)
GROUP BY category_id );
-- Action혹은 Drama를 가져오는 쿼리
SELECT
title,
category_id
FROM
film
INNER JOIN film_category
USING(film_id)
WHERE
category_id = ANY(
SELECT
category_id
FROM
category
WHERE
NAME = 'Action'
OR NAME = 'Drama'
);
2) ANY IN 사용
SELECT
title,
category_id
FROM
film
INNER JOIN film_category
USING(film_id)
WHERE
category_id IN(
SELECT
category_id
FROM
category
WHERE
NAME = 'Action'
OR NAME = 'Drama'
);
NOT IN
x <> ANY (a,b,c)
x <> a OR <> b OR x <> c
반응형
'SW ENGINEERING > Postgres' 카테고리의 다른 글
[PostgreSQL] BASIC - CTE (0) | 2021.09.03 |
---|---|
[PostgreSQL] BASIC - ALL (0) | 2021.09.03 |
[PostgreSQL] BASIC - Subquery (0) | 2021.09.03 |
[PostgreSQL] BASIC - ROLLUP (0) | 2021.09.03 |
[PostgreSQL] BASIC - CUBE (0) | 2021.09.03 |
최근댓글