Joe*_*ips 168 sql t-sql sql-server nested common-table-expression
WITH y AS (
    WITH x AS (
        SELECT * FROM MyTable
    )
    SELECT * FROM x
)
SELECT * FROM y
这样的事情有用吗?我之前尝试过,但我无法让它发挥作用.
spe*_*der 277
虽然没有严格嵌套,但您可以使用公用表表达式重用以后的查询.
为此,您要查找的语句的形式将是
WITH x AS 
(
    SELECT * FROM MyTable
), 
y AS 
(
    SELECT * FROM x
)
SELECT * FROM y
您可以执行以下操作,称为递归查询:
WITH y
AS
(
  SELECT x, y, z
  FROM MyTable
  WHERE [base_condition]
  UNION ALL
  SELECT x, y, z
  FROM MyTable M
  INNER JOIN y ON M.[some_other_condition] = y.[some_other_condition]
)
SELECT *
FROM y
您可能不需要此功能.为了更好地组织我的查询,我已经完成了以下操作:
WITH y 
AS
(
  SELECT * 
  FROM MyTable
  WHERE [base_condition]
),
x
AS
(
  SELECT * 
  FROM y
  WHERE [something_else]
)
SELECT * 
FROM x
与嵌入不起作用,但它确实连续工作
;WITH A AS(
...
),
B AS(
...
)
SELECT *
FROM A
UNION ALL
SELECT *
FROM B
编辑 修正了语法...
另外,请看下面的示例
| 归档时间: | 
 | 
| 查看次数: | 99073 次 | 
| 最近记录: |