MariaDB/MySQL 재귀쿼리로 달력 만들기

MariaDB/MySQL에서 달력 만들일이 생겼다.

오라클에서는 재귀쿼리로 이미 잘 쓰고 있었는데... MariaDB/MySQL에서는 그 시절 재귀쿼리가 안되었다.

이번엔 재귀쿼리가 가능한 상위버전의 MariaDB이길래 만들어 보았다.

'2022-02' 부분만 원하는 년월로 바꾸어 주면 된다.

SELECT
	MIN(CASE WHEN A.DOW=1 THEN A.LEVEL END) AS Sun,
	MIN(CASE WHEN A.DOW=2 THEN A.LEVEL END) AS Mon,
	MIN(CASE WHEN A.DOW=3 THEN A.LEVEL END) AS Tue,
	MIN(CASE WHEN A.DOW=4 THEN A.LEVEL END) AS Wed,
	MIN(CASE WHEN A.DOW=5 THEN A.LEVEL END) AS Thu,
	MIN(CASE WHEN A.DOW=6 THEN A.LEVEL END) AS Fri,
	MIN(CASE WHEN A.DOW=7 THEN A.LEVEL END) AS Sat
FROM (
	WITH RECURSIVE CALENDAR AS (
		SELECT 1 AS LEVEL, DAYOFWEEK(CONCAT('2022-02','-01')) AS DOW, WEEK(CONCAT('2022-02','-01')) AS WOY
		UNION ALL
		SELECT CALENDAR.LEVEL + 1, DAYOFWEEK(CONCAT('2022-02','-', CALENDAR.LEVEL + 1)), WEEK(CONCAT('2022-02','-', CALENDAR.LEVEL + 1))
		FROM CALENDAR
		WHERE CALENDAR.LEVEL < DAY(LAST_DAY(CONCAT('2022-02','-01')))
	)
	SELECT *
	FROM CALENDAR
) A
GROUP BY A.WOY
ORDER BY A.WOY;
Coding MariaDB MySQL SQL

MariaDB/MySQL 재귀쿼리로 달력 만들기

Coding MariaDB MySQL SQL

CentOS7 - Oracle Database XE 18c 설치

CentOS Oracle System

Wi-Fi 6E Card 설치기

Hardware

마우스 수리기

Hardware

나도 10년 만에 PC 업그레이드 이야기 2020-12

Hardware

티베로 데이터베이스 추가 (CentOS Linux 환경)

CentOS System Tibero