SQL如何将空值和非空值排序

杨友山
领域专家: 后端开发技术领域
2012-06-14 11:19:00
是这样,需要按升序排序,但是有空值(在这里由于是数字型,所以空值都是0)结果空值就在最前面。想要的结果是所有按升序排序,但是空值放在最后。不过我只写了这个sql,将非空排在前面,空的排在后面

SELECT * from TB ORDER BY [列名] <>0 AND [列名]=0 DESC


但是结果里非空的是乱的,并不是按升序排的。

大家知不知道这个sql该如何写呢。

(如果实在没办法了我就只好在程序中循环整个DataTable用程序将空的放到最后)
...全文
982 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
nikolaichow 2012-06-14
  • 打赏
  • 举报
回复
order by isnull(列名,0)
ParanoidKing 2012-06-14
  • 打赏
  • 举报
回复
SQL Server的话可以这么写

SELECT * FROM TB ORDER BY (CASE WHEN [列名] > 0 THEN [列名] ELSE 9999 END)

9999换成你认为[列名]不可能达到的最大值
Access不支持CASE,但好像可以用IIF或SWITCH代替,试试这样

SELECT * FROM TB ORDER BY (IIF([列名] > 0, [列名], 9999))
天下如山 2012-06-14
  • 打赏
  • 举报
回复
貌似Access也支持union
熙风 2012-06-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

实在不行 就 2个select(一个非空升序 一个空) union下。
[/Quote]

+1
杨友山 2012-06-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
SQL code


select * from TB order by case when [列名] is null then (select isnull(MAX([列名]),0) from TB)+1 else [列名] end asc
[/Quote]

其实,我忘说我用的是access,不支持复杂的查询,如果需要用sql函数等处理的话,那我只好在程序里处理了。
ycproc 2012-06-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

SQL code

select * from TB order by case when [列名] is null then (select isnull(MAX([列名]),0) from TB)+1 else [列名] end asc
[/Quote]

这句话貌似有问题 只能过滤一个条件
应当用union
  • 打赏
  • 举报
回复

select * from TB order by case when [列名] is null then (select isnull(MAX([列名]),0) from TB)+1 else [列名] end asc
天下如山 2012-06-14
  • 打赏
  • 举报
回复
实在不行 就 2个select(一个非空升序 一个空) union下。
内容概要:本文围绕“基于双层共识控制的直流微电网优化调度”展开研究,提出了一种结合双层控制架构与共识算法的优化调度方法,旨在提升直流微电网在分布式能源接入背景下的协调控制能力与运行效率。上层采用集中式优化策略进行全局经济调度,下层则通过分布式共识控制实现各分布式电源间的自主协同,有效解决了系统中功率平衡、电压稳定与资源优化配置等问题。文中详细构建了数学模型,并利用Matlab进行仿真验证,结果表明该方法在动态负载变化与新能源波动条件下仍具备良好的鲁棒性与收敛性,能够实现高效、可靠的微电网能量管理。; 适合人群:具备一定电力系统、自动化或控制理论基础,熟悉Matlab仿真工具,从事新能源、微电网、智能电网等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:① 掌握双层控制架构在微电网调度中的设计思路与实现方式;② 学习共识算法在分布式能源协调控制中的具体应用;③ 复现论文算法并拓展至多智能体协同、直流配电系统优化等研究方向; 阅读建议:此资源以论文复现为核心,建议读者结合Matlab代码深入理解算法实现细节,重点关注上下层控制器的信息交互机制与收敛条件设定,同时可尝试引入更多不确定性因素以增强模型实用性。

111,122

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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