【发布时间】:2011-08-25 23:13:40
【问题描述】:
我不得不查看一些代码,并且遇到了有人做过的事情,并且想不出为什么我的方法更好而可能不是的原因,那么,哪个更好/更安全/更有效?
SELECT MAX(a_date) FROM a_table WHERE a_primary_key = 5 GROUP BY event_id
或
SELECT TOP 1 a_date FROM a_table WHERE a_primary_key = 5 ORDER BY a_date
我会选择第二个选项,但我不确定为什么,以及是否正确。
【问题讨论】:
-
如果
a_primary_key确实是表的主键列,那么查询提及TOP 1 .. ORDER BY或MAX .. GROUP BY是没有意义的。一个主键唯一标识一行;没有必要订购或最大化单行,只需说SELECT a_date FROM a_table WHERE a_primary_key = 5;无论如何,您都会得到 0 到 1 个结果
标签: sql sql-server tsql