2014-12-11 3 views
1

Я исхожу из фона T-SQL, и я привык использовать конструкторы табличных значений для различных целей (например, поиск в соответствии с кодом для удобочитаемой строки). Код обычно выглядит так ...Эквивалент для конструктора значений таблиц T-SQL в Amazon Redshift?

SELECT a, b FROM (VALUES (1, 2), (3, 4), (5, 6), (7, 8), (9, 10)) AS MyTable(a, b); 

Я пробовал запустить этот код в Amazon RedShift безрезультатно. Я также вырыл документы, которые искали эквивалент, но я не могу найти их. Есть ли эквивалент?

+2

Этот * * поддерживается Postgres (по крайней мере, начиная с 8.3). Кажется, красное смещение основано на ** действительно ** старой версии Postgres, если она там не работает. –

+0

@a_horse_with_no_name Согласно тегу wiki, «Redshift основан на PostgreSQL 8.0». Так что да, довольно древний, и, по-видимому, либо отсутствует целая куча вещей, либо сильно расходится в наборе функций. – IMSoP

ответ

2

Вы используете их как статические значения для тестирования или что-то еще? Вы всегда можете сделать несколько UNION ALL в подзапросе:

ПРИМЕЧАНИЕ: Я считаю, что это должно работать нормально, я больше привык к Oracle и SqlServer, но что-то подобное должно быть доступно вам независимо от платформы ...

SELECT a, b 
FROM 
(
    SELECT 1 AS a, 2 AS b 
    UNION ALL 
    SELECT 3 AS a, 4 AS b 
    UNION ALL 
    SELECT 5 AS a, 6 AS b 
) MyTable; 
+0

Обратите внимание, что вам не нужно повторять «как а» и «как b» после первой строки, если вам нужна краткость по симметрии. – IMSoP