이번 아티클에서는 BETWEEN 연산자에 대해서 살펴보겠습니다. BETWEEN은 단어에서도 연상할 수 있듯이, '어떤 특정한 범위에 들어가는 값'을 출력하는 연산자입니다. 예를 들어 WHERE COLUMN_NAME BETWEEN X AND Y와 같은 형태가 되는 것이지요.
[BETWEEN X AND Y]는 SQL에서 [X 이상이며 Y이하인 값]을 의미하게 됩니다. 이를 풀어서 WHERE 키워드 조건으로 풀어본다면 [COLUMN_NAME >= X AND COLUMN_NAME <= Y]가 됩니다.
select *
from table_name
where column_name
between value_x and value y
-- column_name >= x and column_name <= y와 같다
여기서 BETWEEN에 NOT을 붙여서 사용도 가능합니다. [BETWEEN X AND Y]가 X 이상, Y 이하의 값들이라고 정의했으니 [NOT BETWEEN X AND Y]은 이 값들이 제외되는 값으로 생각해주면 됩니다. 그럼 X 미만, Y 초과를 의미하게 되겠죠.
select *
from table_name
where column_name
not between value_x and value y
-- column_name < x or column_name > y와 같다
Q. PAYMENT테이블에서 지불 금액(AMOUNT)이 8달러 이상, 9달러 이하인 고객의 CUSTOMER_ID, PAYMENT_ID, AMOUNT를 출력해 주세요.
select customer_id ,
payment_id ,
amount
from payment p
where amount between 8 and 9
Q. PAYMENT테이블에서 지불 금액(AMOUNT)이 8달러 이상, 9달러 이하인 고객을 제외한 나머지 모든 고객의 CUSTOMER_ID, PAYMENT_ID, AMOUNT를 출력해 주세요.
select customer_id ,
payment_id ,
amount
from payment p
where amount not between 8 and 9
Q. PAYMENT 테이블에서, 결제 일자가 2007년 2월 7일부터 2007년 2월 15일인 고객을 찾아 CUSTOMER_ID, PAYMENT_ID, AMOUNT, PAYMENT_DATE를 출력해 주세요
select customer_id ,
payment_id ,
amount ,
payment_date
from payment p
where cast(payment_date as date) between '2007-02-07' and '2007-02-15'
※위 예제에서 PAYMENT_DATE가 시간을 포함해서 출력되고 있습니다. to_char 함수를 이용해서 날짜만이 표시되도록 바꾸어 쿼리를 날려봅시다.
select customer_id ,
payment_id ,
amount ,
to_char(payment_date, 'yyyy-mm-dd') as new_date
from payment p
where to_char(payment_date, 'yyyy-mm-dd') between '2007-02-07' and '2007-02-15'
ㅇㅇㅇ
'Data Literacy > SQL' 카테고리의 다른 글
Chapter 1. 데이터 조회, 필터링(11) - IS NULL (0) | 2023.05.17 |
---|---|
Chapter 1. 데이터 조회, 필터링(10) - LIKE (0) | 2023.05.15 |
Chapter 1. 데이터 조회, 필터링(8) - IN 2 (0) | 2023.05.11 |
Chapter 1. 데이터 조회, 필터링(8) - IN 1 (0) | 2023.05.10 |
Chapter 1. 데이터 조회, 필터링(7) - FETCH(w/OFFSET) (1) | 2023.05.06 |