【问题标题】:subquery that starts with "with" in teradata is not workingteradata 中以“with”开头的子查询不起作用
【发布时间】:2014-02-14 04:37:01
【问题描述】:

我有一个这样开始的查询(我无法修改)

with CodeSet (
   code_context_c
 , bom_index_c
 , src_qs_c
 , src_code_set_c 
 , src_code_set_x 
 , src_code_value_c
 , src_code_value_x
 , tgt_code_set_c
 , tgt_code_value_c
  ) as (
SELECT ...

然后继续。现在我需要将它用作子查询并执行类似的操作

select * from (with CodeSet (
       code_context_c
     , bom_index_c
     , src_qs_c
     , src_code_set_c 
     , src_code_set_x 
     , src_code_value_c
     , src_code_value_x
     , tgt_code_set_c
     , tgt_code_value_c
      ) as (
    SELECT ...

但 Teradata 不喜欢它……有人以前见过吗?更改查询需要一些时间,我不希望这样做。任何人都可以在这里帮助我吗?

错误信息是:

选择失败。 [3707] 语法错误,在 'from' 关键字和 'as' 关键字之间需要名称或 Unicode 分隔标识符或 '('。

提前致谢, 翁贝托

【问题讨论】:

标签: teradata


【解决方案1】:

不确定您是否仍在寻找答案,但您需要在 WITH 语句之后运行 SELECT。在您从中选择之前,WITH 实际上并没有具体化一个表。所以是这样的:

;WITH CodeSet (
      blah
      , blah
      , ...
    ) AS (
    SELECT  blah
            , blah
            , ...
    )
    ;
    SELECT * FROM CodeSet;

【讨论】:

  • 感谢您的回复。欣赏它。
猜你喜欢
  • 2013-12-03
  • 2020-11-18
  • 2018-11-08
  • 2017-01-16
  • 1970-01-01
  • 1970-01-01
  • 2013-09-04
  • 1970-01-01
  • 2012-04-29
相关资源
最近更新 更多