by 뮈일러 mssql [2022.02.07 11:23:59]
order by에서
컬럼명이 b.expireDay인데
아무리 asc , case 등등 해봐도 자꾸 빈값이 앞으로 나옵니다
초보라서 그런데 알려주세요 ㅠㅠ
저같은 경우에는 order by nvl(b.expireDay, 'ZZZZZZ') 이런 식으로 처리 합니다.
order by 절에서 null 을 강제적으로 정의하는 방법이죠.
(오라클 식인데... mssql 에서도 되던가....???)
+ mssql 에서는 isnull 함수가 있네요.
order by isnull (b.expireDay, 'ZZZZZZ') 로 가능할듯 싶습니다.
안되네용..
함수가 없어서 에러가 생긴다면....
ORDER BY CASE WHEN b.expireDay IS NULL THEN 'ZZZZ' ELSE b.expireDay END
형태를 추천합니다.
근데 이게 null값도 아니고 빈값도 아닌 아예 값이 없는건데 이런경우엔 가능한가요??
null 도 아니고 빈값도 아니고 값이 없다는 것은 어떤 의미 일까요....?
https://dba-presents.com/index.php/databases/sql-server/36-order-by-and-nulls-last-in-sql-server
참고해 보세요..
이건 오라클인데요ㅠㅠ
오라클만 있는게 아닐텐데요...??
ORDER BY CASE WHEN b.expireDay IS NULL THEN 2 WHEN b.expireDay = '' THEN 1 ELSE 0 END , b.expireDay ;
ORDER BY CASE WHEN 컬럼 IS NULL THEN 1 ELSE 0 END, 컬럼 안되나요?