【问题标题】:which query is more preferable and why哪个查询更可取以及为什么
【发布时间】:2010-01-15 00:11:58
【问题描述】:

我正在尝试自学 SQL,当然我想遵循最佳实践。

我创建了两个查询来查找最新记录:

select * from AppSurvey where 
DateLastUsed >= ( SELECT MAX(DateLastUsed) FROM AppSurvey)

select top 1 * from AppSurvey order by DateLastUsed desc

其中一种方法比另一种更有效还是真的很重要

【问题讨论】:

  • 如果 DateLastUsed 不是唯一的,这实际上是两个不同的查询。所以,从苹果到橘子。顶部的可以选择许多调查,而底部的只能抽样一项。
  • 第一个查询可能返回多条记录,所以它们实际上并没有做同样的事情。在 MS-SQL 中,第二个查询更高效

标签: sql


【解决方案1】:

此网站上有一篇与您想要了解的内容类似的帖子。

For autoincrement fields: MAX(ID) vs TOP 1 ID ORDER BY ID DESC

首选答案似乎是:“理论上,他们将使用相同的计划并几乎同时运行”

【讨论】:

    【解决方案2】:

    如果您的 DateLastUsed 列不是唯一的,第一个可能会得到多行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-03
      • 1970-01-01
      相关资源
      最近更新 更多