查詢不一樣的語句

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相同的記錄呢?若是存在的話,第一個查詢結果顯示出來的記錄不是一行,而第二個確定值查詢到一行記錄。
相關文章
相關標籤/搜索