首页 > 解决方案 > bigquery 命令按位置拆分列

问题描述

如何在bigquery中按位置拆分列

在这里,我有一列这样的出生日期

19900311
20071103
19930802
19840130
19790206
19940301

我只需要得到年份,所以需要使用子字符串函数来获取位置0,4

有人可以帮我正确的命令吗

标签: google-bigquery

解决方案


以下是 BigQuery 标准 SQL

您可以使用 SUBSTR 函数,如下例所示

#standardSQL
WITH `project.dataset.table` AS (
  SELECT '19900311' date_of_birth UNION ALL
  SELECT '20071103' UNION ALL
  SELECT '19930802' UNION ALL
  SELECT '19840130' UNION ALL
  SELECT '19790206' UNION ALL
  SELECT '19940301' 
)
SELECT date_of_birth, SUBSTR(date_of_birth, 1, 4) year_of_birth
FROM `project.dataset.table`

结果

Row date_of_birth   year_of_birth    
1   19900311        1990     
2   20071103        2007     
3   19930802        1993     
4   19840130        1984     
5   19790206        1979     
6   19940301        1994     

推荐阅读