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
반응형