IN 연산자 문법
- 특정 집합 (컬럼 혹은 리스트)에서 특정 집합 혹은 리스트가 존재하는지 판단하는 연산자
기본 문법
- column_name이 가지고 있는 집합에서 value1, 2 등의 값이 존재하는지 확인
SELECT * FROM TABLE_NAME WHERE column_name IN(value1, value2, ...)
- column_name이 가지고 있는 집합에서 table_name2 테이블의 column_name2의 집합이 존재하는지 확인
SELECT * FROM TABLE_NAME WHERE column_name IN(SELECT COLUMN_NAME2 FROM TABLE_NAME2);
실습
1) IN연산자를 사용하여 rental 테이블의 customer_id 가 1 또는 2 인 값을 return_date 내림차순으로 정렬하여 조회
SELECT customer_id, rental_id, return_date
FROM rental
WHERE customer_id IN(1, 2)
ORDER BY return_date desc;
2) OR연산자를 사용하여 rental 테이블의 customer_id 가 1 또는 2 인 값을 return_date 내림차순으로 정렬하여 조회
SELECT customer_id, rental_id, return_date
FROM rental
WHERE customer_id = 1 OR customer_id = 2
ORDER BY return_date desc;
3) NOT IN연산자를 사용하여 rental 테이블의 customer_id 가 1과 2 가 아닌 값을 return_date 내림차순으로 정렬하여 조회
SELECT customer_id, rental_id, return_date
FROM rental
WHERE customer_id NOT IN(1, 2)
ORDER BY return_date desc;
4) AND연산자를 사용하여 rental 테이블의 customer_id 가 1과 2 가 아닌 값을 return_date 내림차순으로 정렬하여 조회
SELECT customer_id, rental_id, return_date
FROM rental
WHERE customer_id <> 1 AND customer_id <> 2
ORDER BY return_date desc;
5) 서브 쿼리를 사용하여 rental 테이블의 return_date 가 2005-05-27 인 customer_id를 조회
- cast는 return_date를 date type으로 변환시켜주는 함수
SELECT customer_id FROM rental WHERE CAST (return_date as date) = '2005-05-27';
6) IN 연산자에 서브 쿼리를 사용하여 rental 테이블의 return_date 가 2005-05-27 인 customer_id 값으로 customer 테이블의 customer_id 컬럼을 비교하여 first_name, last_name의 데이터를 조회
SELECT first_name, last_name
FROM customer
WHERE customer_id IN (
SELECT customer_id
FROM rental
WHERE CAST (return_date as date) = '2005-05-27
);
'Database > PostgreSQL' 카테고리의 다른 글
[PostgreSQL] PostgreSQL 패턴 검색 (LIKE 문) (1) | 2024.06.11 |
---|---|
[PostgreSQL] PostgreSQL 범위 조회 (BETWEEN 연산자) (0) | 2024.06.11 |
[PostgreSQL] PostgreSQL 결과의 제한 (FETCH 절) (0) | 2024.06.11 |
[PostgreSQL] PostgreSQL 결과의 제한 (LIMIT 절) (0) | 2024.06.11 |
[PostgreSQL] PostgreSQL 필터링 조회 (WHERE 절) (0) | 2024.06.10 |