2021-11-30 20:42 작성

My SQL basic 메모

Table of contents

IN 연산자

IN 연산자는 임의의 값이 list의 값들과 매칭되는지를 확인한다.

  • value값이 NULL일 경우 결과값은 NULL을 반환한다.
  • value값이 list의 어떤 값과도 일치하지 않고, list에 NULL이 존재하는 경우 NULL을 반환한다.
value IN (value1, value2, value3,...)

위의 식에서 valueIN 이하의 값들 중 어느 하나와 매칭되는 경우 1(true)을 반환하고 그렇지 않으면 0(false)을 반환한다.

SELECT 2 IN (1, 2, 3);

output: 2의 값이 list 중 하나에 속하므로 true인 1일 반환한다.

2 IN (1,2,3)
1
SELECT 
    officeCode, 
    city, 
    phone, 
    country
FROM
    offices
WHERE
    country IN ('USA' , 'France');

output: country = 'USA' OR country = 'France'과 동일한 결과를 반환한다.

officeCode city phone country
1 San Francisco +1 650 219 4782 USA
2 Boston +1 215 837 0825 USA
3 NYC +1 212 555 3000 USA
4 Paris +33 14 723 4404 France

NOT IN 연산자

NOT IN 연산자는 임의의 값이 list의 어떤 값들 과도 일치하지 않을 때 어느 하나를 반환하고 그렇지 않으면 0을 반환한다. 기술적으로 아래의 값과 같다.

NOT (value = value1 OR value = value2 OR value = valu3)
SELECT 1 NOT IN (1,2,3);

output:

1 NOT IN (1,2,3)
0
SELECT 0 NOT IN (1,2,3,NULL);
SELECT NULL NOT IN (1,2,3,NULL);
SELECT NULL NOT IN (1,2,3);

output: NULL

SELECT 
    officeCode, 
    city, 
    phone
FROM
    offices
WHERE
    country NOT IN ('USA' , 'France')
ORDER BY 
    city;

output:

officeCode city phone
7 London +44 20 7877 2041
6 Sydney +61 2 9264 2451
5 Tokyo +81 33 224 5000