查询不一样的语句

SQLSERVER服务器中,给定表 table1 中有两个字段 ID、LastUpdateDate,ID表示更新的事务号,

LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句得到最后更新的事务号。
答:1.SELECT ID FROM table1 
WHERE LastUpdateDate = (SELECT MAX(LastUpdateDate) FROM table1)
2.select top 1 ID from table1 order by LastUpdateDate desc
这两条回答有何区别?
结果是同样的,但是执行的效率确定不同。看看语法,分析一下,第一个语句,是先从table1作一个全表的比较获得最大的日期,而后再用日期作匹配获得记录。而第二个直接一个全表的排序就查到了,看查询的次数来讲,第二个要少一次,效率确定要高。还有,会不会存在lastupdatedate相同的记录呢?若是存在的话,第一个查询结果显示出来的记录不是一行,而第二个确定值查询到一行记录。
相关文章
相关标签/搜索