我不得不復習一些代碼,並且遇到了某人做了某事,並且想不出我的方式更好的原因。它可能不是,那麼,哪個更好/更安全/更有效?MAX vs Top 1 - 哪個更好?
SELECT MAX(a_date) FROM a_table WHERE a_primary_key = 5 GROUP BY event_id
OR
SELECT TOP 1 a_date FROM a_table WHERE a_primary_key = 5 ORDER BY a_date
我會去與第二個選項,但我不知道爲什麼,如果這是正確的。
SQL Server TOP 1的行爲與使用rowNum = 1的Oracle不同。 Oracle實際上並沒有搶在訂購之前找到的第一個,所以這個方法僅對SQL Server有效。這個TOP 1 vs Max()的另一個好處是,只要你包含適用的順序,你可以根據需要抓取儘可能多的列。我使用Max()進行了測試,發現即使使用GROUP BY,它也不會只產生1條記錄。也許有人更強大的mojo可以說,如果你想從多列無w/o子查詢獲得頂部如何獲得一行? – gordon