access中iif后的排序问题

cfanwolf 2007-05-20 10:31:45
如题:
不用IIF之前的排序结果如下
a b c
-------
10 * 23
9 * 21
7 * 22
空 * 11
空 * 35
iif语句如下
iif(isnull(a),c,a)
IIF后的排序结果如下
a b c
-------
10 * 23
9 * 21
7 * 22
11 * 11
35 * 35

请问这是为什么!
如何在使用IIF之后让A列以倒序排列。
...全文
255 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cfanwolf 2007-05-20
  • 打赏
  • 举报
回复
怎么没有人回复啊
cfanwolf 2007-05-20
  • 打赏
  • 举报
回复
不同的是。。两条语句中只有IIF的区别啊。
select a,b,c from abc order by a desc
select iif(isnull(a),c,a),b,c from abc order by a desc
SQL语句就是这么写的。。结果就像上面说的一样。。他无法正确排序。。
cfanwolf 2007-05-20
  • 打赏
  • 举报
回复
我排了序了啊。
order by a desc
  • 打赏
  • 举报
回复
排序是使用 order by 表达式。你根本没有排序,说什么“排序结果如下”啊。

当你没有排序的时候,Jet使用它自己的(任意、不确定)顺序显示,例如使用磁盘记录块的自然顺序。
cfanwolf 2007-05-20
  • 打赏
  • 举报
回复
自己在顶以下自己的帖子!哎苦苦等待中!
cfanwolf 2007-05-20
  • 打赏
  • 举报
回复
高手来帮助我解答以下啊。
没事的来顶以下啊。。
谢谢。
cfanwolf 2007-05-20
  • 打赏
  • 举报
回复
谢谢。。我已经知道如何解决了。。
我的 方法就是

select * from (select iif(isnull(a),c,a),b,c from abc) order by a desc
  • 打赏
  • 举报
回复
order by iif(isnull(a),c,a)

或许,jet 的 sql 语法也支持你给查询表达式设置别名,然后在 order by 中使用别名。你自己都不显示a,干嘛用a排序?对不对?

62,075

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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