【发布时间】:2018-07-28 15:39:39
【问题描述】:
问题:BigQuery 将行值解释为字符串而不是列名。
我有两张桌子:
table_1
| ColumnA | ColumnB | ColumnC |
| 123 | 345 | ColumnD |
| 678 | 900 | ColumnE |
table_2
| ColumnD | ColumnE | ColumnF |
| nn | xx | 123 |
| kk | yy | 678 |
我现在要做的是合并两个表,并根据 table_1 中的行从 table_2 中的列中选择值。
类似这样的:
SELECT
(SELCT ColumnC FROM table_2 WHERE ColumnF = table_1.ColumnA )
FROM table_1
问题在于 BigQuery 将 ColumnC 解释为字符串。因此,它不是从 ColumnD 和 ColumnE 获取值,而是输出 'ColumnC'
【问题讨论】:
-
我什至不知道如果没有动态 SQL 是否可行,Big Query 甚至可能不支持,但我会说你的表设计真的很糟糕。如果要表示两个表之间的关系,通常通过设置连接列来实现。也就是说,
table_1中某列中的值指向table_2中另一列中的值。
标签: google-bigquery bigquery-standard-sql