SQL中from中的子查询和select之前的查询有什么区别?
What is the difference between subquery in from and query before select in TSQL?
我有两个问题:
SELECT *
FROM (
SELECT id, name FROM t1
) AS t
和
t AS (
SELECT id, name FROM t1
)
SELECT *;
他们在做同样的事情吗?一个比另一个更受欢迎吗?
第二个查询应该是:
WITH t AS (
SELECT id, name FROM t1
)
SELECT *
FROM t;
他们return没有区别。作为个人选择,我选择第二个版本 - CTE,原因是可读性。但除此之外,子查询与 CTE - 它们的行为应该相同。
希望对您有所帮助
使用通用 Table 表达式 (CTE) 在必须重复内部代码时也很有用。这样您就可以在需要时调用 CTE 而不是重复代码。
我有两个问题:
SELECT *
FROM (
SELECT id, name FROM t1
) AS t
和
t AS (
SELECT id, name FROM t1
)
SELECT *;
他们在做同样的事情吗?一个比另一个更受欢迎吗?
第二个查询应该是:
WITH t AS (
SELECT id, name FROM t1
)
SELECT *
FROM t;
他们return没有区别。作为个人选择,我选择第二个版本 - CTE,原因是可读性。但除此之外,子查询与 CTE - 它们的行为应该相同。
希望对您有所帮助
使用通用 Table 表达式 (CTE) 在必须重复内部代码时也很有用。这样您就可以在需要时调用 CTE 而不是重复代码。