Google bigquery 选择所有列,但用Google BigQuery中的表达式替换某些列?
类似于-我们希望Google bigquery 选择所有列,但用Google BigQuery中的表达式替换某些列?,google-bigquery,Google Bigquery,类似于-我们希望从表中选择*,但不是排除某些列,而是希望用一些表达式替换它们。例如,给定包含以下列的表:name、start\u date、amount、end\u date、comment,我们希望将start和end从STRING转换为date。写是可能的 SELECT * EXCEPT(start_date, end_date), CAST(start_date AS DATE) start_date, CAST(end_date AS DATE) end_date 但是这
从表中选择*
,但不是排除某些列,而是希望用一些表达式替换它们。例如,给定包含以下列的表:name、start\u date、amount、end\u date、comment
,我们希望将start
和end
从STRING
转换为date
。写是可能的
SELECT
* EXCEPT(start_date, end_date),
CAST(start_date AS DATE) start_date,
CAST(end_date AS DATE) end_date
但是这会改变列从开始到结束的移动顺序。除了
SELECT*EXCEPT
之外,Google BigQuery还支持标准SQL方言中的SELECT*REPLACE
子句。文档可在此处找到:
您的示例将成为:
SELECT * REPLACE(
CAST(start_date AS DATE) AS start_date,
CAST(end_date AS DATE) AS end_date)
FROM T
我想进一步说,您可以在同一个
选择
文档中没有那么明显,所以我认为它很有价值
比如说
SELECT * EXCEPT(end_date) REPLACE(
CAST(start_date AS DATE) AS start_date
FROM T
这将从输出端删除结束日期
,用铸造的截止日期开始日期替换原始的开始日期