日期:2014-05-18  浏览次数:20826 次

min的怪问题
SELECT   MIN(ID)   AS   ID
FROM   (SELECT   TOP   20   ID
                FROM   Accounts)   DERIVEDTBL

这是一个正常的SQL语句吧,
子查询取得了表accounts里的20条记录
min(id)肯定是在子查询里查最小记录吧。。

但我现在遇到一个怪问题。
我本机执行这条语句正常,取到的是子查询的最小记录
但在另一台机器上,取到的数据却是表accounts的最小记录

我彻底晕死。。。。难道SQL版本不同,会引起这些错误吗?
还是我这SQL本身就写错了?

------解决方案--------------------
sql2000打了SP4补丁后会这样,这么写就没问题了

SELECT MIN(ID) AS ID
FROM (SELECT TOP 20 ID
FROM Accounts ORDER BY ID) DERIVEDTBL