欢迎光临

木子屋

标题: T-SQL聚合函数max+子查询引发的灵异事件

作者: dnawo

日期: 2013-06-20 10:14 PM

分类: 服务器

内容: select top 2 Id from Account
引用内容Id
-----------
1
2
(2 行受影响)
select top 2 Id from Account order by Id desc
引用内容Id
-----------
5
4
(2 行受影响)
select * from (select top 2 Id from Account) as tab
引用内容Id
-----------
1
2
(2 行受影响)
select max(Id) Id from (select top 2 Id from Account) as tab
引用内容Id
-----------
5
(1 行受影响)
第4句sql结果本应是2，但执行结果却是Account表最大Id的值5，SQL Server2000/2008上测试都是这个结果，真是鬼诡！
------------------------------------------------------------------
CSDN网友josy回复：子查询不指定排序规则，查询结果顺序是不确定的，下边语句可以得到预期的结果：
复制内容到剪贴板 程序代码select max(Id) Id from (select top 2 Id from Account order by id) as tab

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.086 ms

返回

标题: T-SQL聚合函数max+子查询引发的灵异事件

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.086 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.102 ms

返回