Jin's Dev Story

[PostgreSQL] PostgreSQL 필터링 조회 (IN 연산자) 본문

Database/PostgreSQL

[PostgreSQL] PostgreSQL 필터링 조회 (IN 연산자)

woojin._. 2024. 6. 11. 10:32

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
);