【问题标题】:What is the difference between subquery in from and query before select in TSQL?SQL中的子查询和查询之前的查询有什么区别?
【发布时间】:2015-07-31 06:23:41
【问题描述】:

我有两个疑问:

SELECT *
FROM (
  SELECT id, name FROM t1
) AS t

和

t AS (
  SELECT id, name FROM t1
)
SELECT *;

他们都在做同样的事情吗?一个比另一个更可取吗?

【问题讨论】:

  • 第二个查询错了?您是否缺少WITH 子句?

标签: sql-server tsql subquery


【解决方案1】:

第二个查询应该是:

WITH t AS (
  SELECT id, name FROM t1
)
SELECT *
FROM t;

它们返回的内容没有区别。作为个人选择,我选择第二版 - CTE,原因是可读性。但除此之外,子查询与 CTE - 它们的行为应该相同。

希望有帮助

【讨论】:

    【解决方案2】:

    当您必须重复内部代码时,使用公用表表达式 (CTE) 也很有用。这样您就必须在需要时调用 CTE 而不是重复代码。

    【讨论】:

    • 哦,有道理。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-09
    • 1970-01-01
    • 1970-01-01
    • 2013-06-20
    • 2023-03-19
    • 1970-01-01
    相关资源
    最近更新 更多