[ mysql ] order by null 날짜정렬시 빈값을 맨앞 또는 맨뒤로 하고 다시 최신날짜 또는 오래된날짜로 로 정렬하고 싶다면? > database

본문 바로가기
사이트 내 전체검색

database

[ mysql ] order by null 날짜정렬시 빈값을 맨앞 또는 맨뒤로 하고 다시 최신날짜 또는 오래된날짜로 로 정렬하…

작성자 웹지기
작성일 22-01-19 16:46 | 조회 10,965 | 댓글 0

본문

1)

SELECT * FROM [table] ORDER BY (CASE WHEN [column] is null THEN 2 WHEN [column] = '0000-00-00' THEN 0 ELSE 1 END), [column] ASC

여기서 [column] = '0000-00-00' 은 [column] = '' 와 같은 식으로도 사용을 하는데 이렇게 오류가발생해서 0으로 채워서 진행했다.

ORDER BY 시 null값이  공백이나 0000-00-00 으로 채워지고 이를 정렬하여  위로  올려준다.

반대로  NULL값을 맨 아래로 보내고 싶다면 THEL 1 ELSE 0 END 를 사용한다.

최신 날짜로 정렬은 맨뒤 DESC
오래된 날짜로 정렬은 맨뒤 ASC

 

2) 

공백과 null의 경우

SELECT * FROM [table] ORDER BY [column] IS NULL ASC, [column] DESC;

그런데 나같은 경우 이렇게 하면 값이 정렬이 되지 않고 중간에 null과 0000-00-00 값이 같이 존재해서 정렬이 되지 않았다.

 

3)

SELECT * FROM [table] ORDER BY ISNULL([column], 999999999) DESC

이 내용은 확인 해보지 않았다.

 

4)

SELECT 

    [column]

FROM

    [table]

ORDER BY

    FIELD([column], '0000-00-00', '') DESC,

    [column] ASC
이 구문 같은 경우 정렬이 되지 않았다 

0 0

댓글목록 0

등록된 댓글이 없습니다.

database 목록

Total 34
게시물 검색

회원로그인

접속자집계

오늘
21,570
어제
36,187
최대
61,067
전체
18,088,747

그누보드5
Copyright © funyphp.com. All rights reserved.