SQL“WITH”包含多个派生表

时间:2014-03-18 14:54:14

标签: sql teradata winsql

我可以写下面的内容吗?但这并没有在WinSQL / Teradata中提供正确的输出

with
a (x) as ( select 1 ),
b (y) as ( select * from a )

select * from b

2 个答案:

答案 0 :(得分:0)

当派生表也能正常工作时,您是否真的需要将CTE用于此特定解决方案:

SELECT B.*
 FROM (SELECT A.* 
         FROM (SELECT 1 AS Col1) A
      ) B;

话虽如此,我相信在Teradata 14.10或15中可以使用多个CTE。我相信在Teradata 12或13中引入了对单个CTE和WITH子句的支持。

答案 1 :(得分:0)

您调用依赖的1st,然后调用父级 像这样,它会工作。为什么会那样? Teradata喜欢人们玩更长时间,花更多时间玩它,让它变得重要

    with

"b" (y) as ( select * from "a" ),
"a" (x) as ( select '1' )

select * from b