• SQL IN 연산자

    2021. 5. 30.

    by. Jacob Lee

    728x90

     


     

    IN 연산자

    데이터를 조회할 때, 다수의 가능한 값들을 체크해보고 싶을 때가 있다.

    예를 들어, 어떤 한 유저가 조회하려는 데이터에 존재하는지 알고 싶은 상황처럼 말이다.

     

    그럼 이 같은 상황에 유저가 Jacob인지, Claire인지, Bryan인지 알아보기 위해 수 많은 OR 연산자를 사용해야할까? 정답은 당연히 아니다! SQL의 IN 연산자를 사용함으로써, 수 많은 선택지의 리스트 안에 찾으려고 하는 값이 존재하는지 체크하는 조건을 생성할 수 있다.

     

    기본 문법은 다음과 같다.

    SELECT column_name
    FROM table_name
    WHERE column_name IN (value1, value2, ...);

    IN 다음에는 괄호로 값들을 감싸주어야 한다는 점을 기억하자.

     

    IN 연산자 사용하기

    결제 정보가 들어 있는 payment 테이블이 있다고 가정하고, 금액이 0.99, 1.99, 2.99인 조건을 만족하는 데이터를 조회하기 위해서 다음과 같이 요청할 수 있다.

    SELECT amount FROM payment
    WHERE amount IN (0.99, 1.99, 2.99);

     

    데이터 조회가 아닌, 몇 개의 데이터가 존재하는지 조회하고 싶다면 다음과 같이도 사용이 가능하다.

    SELECT COUNT(*) FROM payment
    WHERE amount IN (0.99, 1.99, 2.99);

     

    혹은, NOT 연산자도 같이 사용할 수 있다.

    SELECT COUNT(*) FROM payment
    WHERE amount NOT IN (0.99, 1.99, 2.99);

    NOT 연산자를 사용한다면, 당연히 IN과는 반대로 위의 조건들이 매치하지 않는 데이터들이 반환된다.

     

    당연히 금액(숫자)뿐만 아니라 문자열 같은, 테이블에 있을 법한 값으로 IN 연사자를 사용할 수 있다.

    SELECT * FROM customer
    WHERE first_name IN ('Jacob', 'John', 'Jamie');

     

    728x90

    'Back-end > SQL' 카테고리의 다른 글

    SQL Aggregate 함수 (AVG, COUNT, MAX, MIN, SUM)  (0) 2021.05.31
    SQL LIKE & ILIKE연산자  (0) 2021.05.30
    SQL BETWEEN 연산자  (0) 2021.05.30
    SQL Limit절  (0) 2021.05.30
    SQL ORDER BY 키워드  (0) 2021.05.30

    댓글