AI/SQL
[SQL] 0부터 23까지 숫자 만들기 (WITH RECURSIVE), 나누기 몫(DIV), IFNULL과 COALESCE, 경계값 포함 BETWEEN
brave_sol
2024. 12. 10. 12:06
프로그래머스 SQL 고득점 kit 9일차(GROUP BY 12문제 / 24문제)
1. 재귀함수 RECURSIVE
WITH RECURSIVE 테이블이름_작명 AS (
SELECT 시작할 값 AS 별칭
UNION ALL
SELECT 별칭+1(원하는 계산식)
FROM 위에서_작명한_테이블이름
WHERE 필요시 원하는 조건
)
SELECT *
FROM 위에서_작명한_테이블이름
2. 나눗셈 (몫과 나머지)
SELECT 5/2 # 2.5
SELECT 5 DIV 2 # 몫 2
SELECT 5%2 # 나머지 1
SELECT 5 MOD 2 # 나머지 1
3. IFNULL과 COALESCE
1) IFNULL: NULL인지 아닌지 1개의 값 비교, MYSQL 전용
SELECT IFNULL(NULL, 'default'); -- 결과: 'default'
SELECT IFNULL('value', 'default'); -- 결과: 'value'
2) COALESCE : 여러 값을 순서대로 평가, 표준SQL
SELECT COALESCE(NULL, 'default', 'fallback'); -- 결과: 'default'
SELECT COALESCE(NULL, NULL, 'fallback'); -- 결과: 'fallback'
4. BETWEEN : 경계값 포함
column_name BETWEEN lower_value AND upper_value
# lower_value <= column_name <= upper_value
반응형