查询不同的语句

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相同的记录呢?如果存在的话,第一个查询结果显示出来的记录不是一行,而第二个肯定值查询到一行记录。
posted @ 2019-06-04 21:59  编程菜小鸟  阅读(210)  评论(0)    收藏  举报