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
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기