FROM AS_TABLE
Обращение к именованным выражениям как к таблицам с помощью функции AS_TABLE.
AS_TABLE($variable) позволяет использовать значение $variable в качестве источника данных для запроса. При этом переменная $variable должна иметь тип List<Struct<...>>.
Пример
$data = AsList(
AsStruct(1u AS Key, "v1" AS Value),
AsStruct(2u AS Key, "v2" AS Value),
AsStruct(3u AS Key, "v3" AS Value));
SELECT Key, Value FROM AS_TABLE($data);
При совместном использовании с другими операторами изменения данных, такими как UPSERT INTO или INSERT INTO, необходимо или указывать модифицируемые колонки и в источнике, и в приемнике:
$data = AsList(
AsStruct(1u AS Key, "v1" AS Value),
AsStruct(2u AS Key, "v2" AS Value),
AsStruct(3u AS Key, "v3" AS Value));
INSERT INTO `my_table` (Key, Value) SELECT Key, Value FROM AS_TABLE($data);
Или не указывать их вовсе:
$data = AsList(
AsStruct(1u AS Key, "v1" AS Value),
AsStruct(2u AS Key, "v2" AS Value),
AsStruct(3u AS Key, "v3" AS Value));
INSERT INTO `my_table` SELECT * FROM AS_TABLE($data);
Была ли статья полезна?
Предыдущая
Следующая