SQL:CTE只是文字

时间:2010-07-21 13:42:52

标签: sql teradata

这是在teradata。

由于很多很好的理由,我希望得到类似下面的内容,我首先创建一个只有文字列表的CTE,然后在以后的语句中引用它:

with MyList(num) as(
    'a','b','c','d'
)

select foo from mytable where x in ( select(num) from MyList))

这是一个非常人为的例子,我知道它实际上应用很少。但确实可以解决这个问题。

谢谢!

2 个答案:

答案 0 :(得分:1)

创建一个返回该结果的查询:

with MyList(num) as(
  select 'a' union all
  select 'b' union all
  select 'c' union all
  select 'd'
)

答案 1 :(得分:1)

teradata是否支持标准SQL行构造函数?

WITH MyList (num) 
     AS
     (
      SELECT num
        FROM (
              VALUES ('a'),
                     ('b'),
                     ('c'),
                     ('d')
             ) AS MyList (num)
     ) 
SELECT num
  FROM MyList;