Базовый синтаксис VALUES в YQL

VALUES как оператор верхнего уровня

Позволяет сформировать таблицу из указанных значений. Например, данное выражение формирует таблицу из k колонок и n строк:

VALUES (expr_11, expr_12, ..., expr_1k),
       (expr_21, expr_22, ..., expr_2k),
       ....
       (expr_n1, expr_n2, ..., expr_nk); 

Это выражение полностью эквивалентно следующему:

SELECT expr_11, expr_12, ..., expr_1k UNION ALL
SELECT expr_21, expr_22, ..., expr_2k UNION ALL
....
SELECT expr_n1, expr_n2, ..., expr_nk; 

Пример:

VALUES (1,2), (3,4);

VALUES после FROM

VALUES может использоваться и в подзапросе после FROM. В частности, эти два запроса эквивалентны:

VALUES (1,2), (3,4);
SELECT * FROM (VALUES (1,2), (3,4));

Во всех примерах выше имена колонок назначаются YQL и имеют вид column0 ... columnN. Для того, чтобы назначить произвольные имена колонок, можно воспользоваться следующей конструкцией:

SELECT * FROM (VALUES (1,2), (3,4)) as t(x,y);

В данном случае колонки получат имена x, y.

Предыдущая
Следующая