【发布时间】:2020-03-05 14:16:28
【问题描述】:
伙计们,我需要在表中进行动态选择,使用 from 之后的变量,如下所示: SELECT * FROM @table。
如果有人可以这样做,请帮助!
tks!
我在下面使用这个查询:
DECLARE id INT64;
DECLARE contador INT64 DEFAULT 1;
DECLARE name_table STRING;
DECLARE query STRING;
CREATE OR REPLACE TABLE `crm-prod-254714.work.controle_tabelas`
AS
SELECT DISTINCT CONCAT('`', table_catalog, '.', table_schema, '.', table_name, '`') as tabela
,ROW_NUMBER() OVER() AS ROWID
FROM ntk.INFORMATION_SCHEMA.TABLES;
SET id = (SELECT MAX(ROWID) FROM `crm-prod-254714.work.controle_tabelas`);
WHILE (contador <= id) DO
SET name_table = (SELECT tabela FROM `crm-prod-254714.work.controle_tabelas` WHERE rowid = 1);
SET QUERY = CONCAT('SELECT * FROM ', name_table, ';');
EXECUTE QUERY;
SET contador = contador+1;
END WHILE
【问题讨论】:
-
变量名必须有一个@作为T-SQL中的第一个字符
-
您检查过 bigquery 中的新脚本功能吗google.com/amp/s/cloudblog.withgoogle.com/products/…
-
丹尼斯,如果我在前面加上@,它就不起作用了......
-
sramalingam,我在这里问之前检查过这个,但没有说任何关于执行变量的内容):
-
您不能仅在 BigQuery 中执行此操作,但您可以在您选择的任何客户端中轻松执行此操作!你有没有考虑过?如stackoverflow.com/questions/60325569/…
标签: sql sql-server dynamic google-bigquery logic