[SQL] 조건문 WHERE, CASE WHEN 정리

HEY! MIN·2024년 10월 1일

조건문 WHERE 의 구조

데이터 중에 특정 조건을 필터링 해야할 때가 있습니다.

SQL 의 ‘WHERE’ 문법을 이용하면 전체 데이터 중 원하는 데이터만 필터링을 할 수 있습니다.

SELECT *
FROM 테이블
WHERE 필터링 조건

비교연산, BETWEEN, IN, LIKE

비교연산자의미예시
=같다age=21, gender=’female’
<>같지 않다 (다르다)age<>21, gender<>’female’
>크다age>21
>=크거나 같다age>=21
<작다age<21
<=작거나 같다age<=21

- BETWEEM : A 와 B 사이

- 기본 문법 : **between** a **and** b
예시 : 나이가 10-20사이
WHERE age BETWEEN 10 AND 20

- IN : ‘포함’ 하는 조건 주기

- 기본 문법 : **in** (A, B, C)
예시 : 나이가 15, 21, 31
WHERE age IN (15,21,31)

- LIKE : 완전히 똑같지는 않지만, 비슷한 값을 조건으로 주기

  • 특정한 문자로 시작하는 경우
    - 기본 문법 : LIKE ‘시작문자%’
예시 : ‘김’ 으로 시작하는 이름
WHERE name LIKE '김%'
  • 특정한 문자를 포함하는 경우
    -기본 문법 : LIKE ‘%포함문자%’
예시 : 식당 이름에 ‘Next’ 를 포함하는 경우
WHERE restaurant_name LIKE '%Next%'
  • 특정한 문자로 끝나는 경우
    -기본 문법 : like ‘%끝나는문자’
예시 : ‘임’ 으로 끝나는 이름
WHERE name LIKE '%임'

조건문 CASE WHEN의 구조

CASE WHEN절은 아래와 같은 기본 구조를 가지고 있어요.

WHEN은 조건에 따라 더 추가 할 수 있어요. 조건식을 모두 만족하지 않을 경우, ELSE로 간주되게 됩니다

SELECT CASE WHEN 조건식1 THEN 결과1
            WHEN 조건식2 THEN 결과2
            ELSE 결과3 
            END AS 새로운 컬럼이름
FROM 테이블명

조건문을 지원하는 연산자

연산자연산의 예의미
>, <N<10, N>10N이 10 미만, N이 10 초과
>=, <=N<=10, N>=10N이 10 이하, N이 10 이상
=N=10N이 10인 값
!=N!=10N이 10이 아닌 값
LIKELIKE('%과자%')문자열이 ~와 같을 때
ANDA AND BA 그리고 B를 모두 만족하는 값
ORA OR BA 또는 B인 값
NOT, !NOT A, !AA가 아닌 값
BETWEENA BETWEEN 10 AND 20A가 10과 20 사이에 포함된 값
IS NULLA IS NULLA 값이 비어있는 값
IS NOT NULLA IS NOT NULLA 값이 비어있지 않는 값
profile
It's a, it's the Pleasure Shop

0개의 댓글