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

LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号。答:1.SELECTIDFROMtable1WHERELastUpdateD... 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
这两条回答有何区别?
展开
 我来答
hit_lubin
2011-04-07 · TA获得超过7889个赞
知道大有可为答主
回答量:1554
采纳率:100%
帮助的人:2013万
展开全部
结果是一样的,可是执行的效率肯定不一样。
看看语法,分析一下,第一个语句,是先从table1做一个全表的比较得到最大的日期,然后再用日期做匹配得到记录。而第二个直接一个全表的排序就查到了,看查询的次数来说,第二个要少一次,效率肯定要高。
还有,会不会存在lastupdatedate相同的记录呢?如果存在的话,第一个查询结果显示出来的记录不是一行,而第二个肯定值查询到一行记录。
leo421
2011-04-07 · TA获得超过149个赞
知道小有建树答主
回答量:214
采纳率:100%
帮助的人:0
展开全部
结果一样,过程不同啊。第一个会遍历所有数据,查找最大值,然后再进行第二次查询。
第二个可以利用索引排序,而且只有一次查询,效率比较高。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式