본문 바로가기
MySQL

[SQL] 쿼리 조건문 (ifnull, nullif, CASE)

by 스응 2023. 4. 20.
728x90
728x90

  - 쿼리 조건문을 사용하면 동적 쿼리를 생성할 수 있음
 
 


#  ifnull(컬럼명a, b)

  - 컬럼명 a가 null이면 b를 반환하고, 컬럼명 a가 null이 아니라면 a를 반환함
 

#  nullif(컬럼명a, 컬럼명b)

  - 컬럼명 a의 값과 컬럼명 b의 값이 동일하면 null을 리턴함
  - 컬럼명 a의 값과 컬럼명 b의 값이 다르면 컬럼명 a의 값을 리턴함
 
 


#  CASE WHEN THEN END

1
2
3
4
5
6
7
-- 조건a를 만족하면 값a를 출력하고, 조건b플 만족하면 값b를 출력하라.
-- 그리고 해당 속성을 '별칭'이라고 표시하라.
 
CASE
    WHEN 조건a THEN 값a
    WHEN 조건b THEN 값b
END AS 별칭
cs

 
▶ 예시

더보기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT h.id, h.amount,
       CASE 
           WHEN h.w_account_id = 1 THEN (h.w_balance)
           WHEN h.d_account_id = 1 THEN (h.d_balance)
       END AS balance,
       ifnull(wa.number, 'ATM') AS 'sender',
       ifnull(da.number, 'ATM') AS 'receiver',
       h.created_at
FROM history_tb AS h
LEFT JOIN account_tb AS da
ON h.d_account_id = da.id
LEFT JOIN account_tb AS wa
ON h.w_account_id = wa.id
WHERE h.d_account_id = 1 OR h.w_account_id = 1;
cs
320x100
반응형

'MySQL' 카테고리의 다른 글

[SQL] 커넥션 풀 (Connection Pool) ★  (0) 2023.05.10
[SQL] COMMENT  (0) 2023.04.21
[SQL] 트랜잭션 (Transaction)  (0) 2023.04.19
[SQL] 서브 쿼리  (0) 2023.04.09
[SQL] DCL - 사용자 생성과 권한 설정 (GRANT)  (0) 2023.03.14

댓글