PostgreSQL IN 연산자 를 사용하여 WHERE값이 목록의 값과 일치하는지 확인 하는 방법
값 목록의 값과 일치하는지 확인합니다.
value IN (value1,value2,...)
- 값 목록은 숫자, 문자열 또는 다음 SELECT과 같은 문의 결과와 같은 리터럴 값 목록일 수 있습니다 .
value IN (SELECT column_name FROM table_name);
- 괄호 안의 쿼리를 다른 쿼리 안에 중첩된 쿼리인 하위 쿼리 라고 합니다
1) PostgreSQL IN 연산자
-- 고객 id 1과 2의 임대 정보를 알고 싶을 때
SELECT customer_id,
rental_id,
return_date
FROM
rental
WHERE
customer_id IN (1, 2)
ORDER BY
return_date DESC;
IN 연산자 대신 등호( =) 및 OR연산자를 사용해도 동일합니다.
2) PostgreSQL NOT IN 연산자
-- 고객 ID가 1 또는 2가 아닌 모든 임대를 찾습니다.
SELECT
customer_id,
rental_id,
return_date
FROM
rental
WHERE
customer_id NOT IN (1, 2);
- IN연산자와 NOT연산자를 결합하여 값이 목록의 값과 일치하지 않는 행을 선택할 수 있습니다 .
IN연산자와 유사 하게 같지 않음( <>) 및 AND연산자를 사용하여 NOT IN 연산자를 작성할 수 있습니다.
3) 하위 쿼리가 있는 PostgreSQL IN
-- rental반환 날짜가 2005-05-27다음 과 같은 테이블 에서 고객 ID 목록을 반환합니다 .
SELECT customer_id
FROM rental
WHERE CAST (return_date AS DATE) = '2005-05-27'
ORDER BY customer_id;
-- same
SELECT
customer_id,
first_name,
last_name
FROM
customer
WHERE
customer_id IN (
SELECT customer_id
FROM rental
WHERE CAST (return_date AS DATE) = '2005-05-27'
)
ORDER BY customer_id;
반응형
'SW ENGINEERING > Postgres' 카테고리의 다른 글
[PostgreSQL] BASIC - LIKE (0) | 2021.09.02 |
---|---|
[PostgreSQL] BASIC - BETWEEN (0) | 2021.09.02 |
[PostgreSQL] BASIC - FETCH (0) | 2021.09.01 |
[PostgreSQL] BASIC - LIMIT (0) | 2021.09.01 |
[PostgreSQL] BASIC - WHERE (0) | 2021.09.01 |
최근댓글