SQL: иметь CTE быть просто литералами - PullRequest
0 голосов
/ 21 июля 2010

Это в teradata.

По многим веским причинам, я хотел бы иметь что-то вроде ниже, где я начинаю с создания CTE, который просто имеет список литералов, а затем может ссылаться наэто в более поздних высказываниях:

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

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

Это очень надуманный пример, и я знаю, что в реальности у него будет мало применений.Но это действительно так.

Спасибо!

Ответы [ 2 ]

1 голос
/ 22 июля 2010

Поддерживает ли teradata стандартные конструкторы строк SQL?

WITH MyList (num) 
     AS
     (
      SELECT num
        FROM (
              VALUES ('a'),
                     ('b'),
                     ('c'),
                     ('d')
             ) AS MyList (num)
     ) 
SELECT num
  FROM MyList;
1 голос
/ 21 июля 2010

Сделайте запрос, который возвращает этот результат:

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