access 遇到空值的排序

poily 2008-12-15 01:12:03
有表a,
id sort(int)
1 1
2 2
3 null
4 3
5 null
因为默认空值为最小,所以直接order by sort 空值排在最前,而需要的排序结果是
id sort
1 1
2 2
4 3
3 null
4 null
空值排最后,其它按sort大小排序,
请问该如何写sql语句?
...全文
198 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
poily 2008-12-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ljhcy99 的回复:]
SELECT *,0 AS CNT FROM TABLE
WHERE SORT <> NULL
UNION
SELECT *,1 AS CNT FROM TABLE
WHERE SORT IS NULL
ORDER BY CNT,SORT
[/Quote]

结果还是空值的记录在最前面
id sort
3 null
4 null
1 1
2 2
4 3
需要的结果是
id sort
1 1
2 2
4 3
3 null
4 null

poily 2008-12-15
  • 打赏
  • 举报
回复
是access数据库啊
poily 2008-12-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wufeng4552 的回复:]
SQL codeselect * from tb order by case when b is not null then 0 else 1 end
[/Quote]

access数据库,如下错误:
IErrorInfo.GetDescription 因 E_FAIL(0x80004005) 而失败。
百年树人 2008-12-15
  • 打赏
  • 举报
回复
order by case when sort is null then 999999 else  sort end 
ljhcy99 2008-12-15
  • 打赏
  • 举报
回复
SELECT *,0 AS CNT FROM TABLE
WHERE SORT <> NULL
UNION
SELECT *,1 AS CNT FROM TABLE
WHERE SORT IS NULL
ORDER BY CNT,SORT
水族杰纶 2008-12-15
  • 打赏
  • 举报
回复
select * from tb order by case when b is not null then 0 else 1 end

34,835

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧