【问题标题】: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 *;
他们都在做同样的事情吗?一个比另一个更可取吗?
【问题讨论】:
标签:
sql-server
tsql
subquery
【解决方案1】:
第二个查询应该是:
WITH t AS (
SELECT id, name FROM t1
)
SELECT *
FROM t;
它们返回的内容没有区别。作为个人选择,我选择第二版 - CTE,原因是可读性。但除此之外,子查询与 CTE - 它们的行为应该相同。
希望有帮助
【解决方案2】:
当您必须重复内部代码时,使用公用表表达式 (CTE) 也很有用。这样您就必须在需要时调用 CTE 而不是重复代码。