CHAR 타입 정렬 문제 0 1 1,679

by holymoly [SQL Query] MariaDB [2024.10.19 19:56:33]



*사진 첨부 순서 죄송합니다

두 번째 첨부드린 사진과 같이 데이터가 있는 테이블을 계층형 조회하는 쿼리문을 작성했습니다.

 

WITH RECURSIVE cte AS 
(
	SELECT id, NAME, parent_id, CAST(id AS CHAR(100)) AS depth, 1 AS LEVEL
	FROM Organization
	WHERE parent_id IS NULL
	
	UNION all
	
	SELECT o.id, o.NAME, o.parent_id, CONCAT(c.depth, '-', o.id) AS depth, 1 + c.level AS level
	FROM Organization o
	INNER JOIN cte c ON o.parent_id = c.id
)

SELECT *
FROM cte
ORDER BY depth;

위와 같이 쿼리를 작성해서 조회 했을 떄 첫 번째 사진과 같이 1-5-9보다 1-5-10가 먼저 출력되는 문제를 겪고 있습니다.

CHAR 타입이라 문자열로 비교되어 그렇다고 생각해도 이해가 잘 안 됩니다,,, 도움 주시면 감사하겠습니다!

 

by 마농 [2024.10.20 07:56:53]

ID 최대 자리수만큼 0을 채워서 연결하세요. 예) 001-005-009

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입