【发布时间】:2012-01-13 07:51:42
【问题描述】:
在 SQL Server 2008 中,我有一个表 CUSTOMERS 有两列:
身份证, 余额
如何编写查询“以最有效的方式”选择余额最大的客户的 ID?
选项 1:ORDER BY BALANCE and SELECT TOP(1) --> 成本太高。
选项2:首先Get MAX amount,然后使用where clause中的金额进行另一个查询-->成本太高而且似乎不可靠。
【问题讨论】:
-
如果向 Balance 添加非聚集索引,您应该会发现选项 1 更快。
-
如果出现平局,您想知道所有的 ID 吗?如果出现平局,您似乎正在寻找一个随机的。