초보 mssql 질문입니다.. order by문 빈값을 뒤로 빼고싶어요 0 10 626

by 뮈일러 mssql [2022.02.07 11:23:59]


order by에서 

컬럼명이 b.expireDay인데 

아무리 asc , case 등등 해봐도 자꾸 빈값이 앞으로 나옵니다

초보라서 그런데 알려주세요 ㅠㅠ

by 우주민 [2022.02.07 11:40:35]

저같은 경우에는 order by nvl(b.expireDay, 'ZZZZZZ') 이런 식으로 처리 합니다.

order by 절에서 null 을 강제적으로 정의하는 방법이죠.

(오라클 식인데... mssql 에서도 되던가....???)

 

+ mssql 에서는 isnull 함수가 있네요.

order by isnull (b.expireDay, 'ZZZZZZ') 로 가능할듯 싶습니다.


by 뮈일러 [2022.02.07 13:57:16]

안되네용..


by 우주민 [2022.02.07 14:15:23]

함수가 없어서 에러가 생긴다면....

ORDER BY CASE WHEN b.expireDay IS NULL THEN 'ZZZZ' ELSE b.expireDay END

형태를 추천합니다.


by 뮈일러 [2022.02.07 14:22:49]

근데 이게 null값도 아니고 빈값도 아닌 아예 값이 없는건데 이런경우엔 가능한가요?? 


by 우주민 [2022.02.07 15:15:50]

null 도 아니고 빈값도 아니고 값이 없다는 것은 어떤 의미 일까요....?


by 동동동 [2022.02.07 11:40:36]

https://dba-presents.com/index.php/databases/sql-server/36-order-by-and-nulls-last-in-sql-server

참고해 보세요..


by 뮈일러 [2022.02.07 13:57:07]

이건 오라클인데요ㅠㅠ

 


by 동동동 [2022.02.07 15:09:40]

오라클만 있는게 아닐텐데요...??


by 마농 [2022.02.07 16:00:43]
ORDER BY CASE WHEN b.expireDay IS NULL THEN 2
              WHEN b.expireDay = '' THEN 1
              ELSE 0 END
       , b.expireDay
;

 


by bellpp [2022.02.07 16:09:26]

ORDER BY CASE WHEN 컬럼 IS NULL THEN 1 ELSE 0 END, 컬럼  안되나요?

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