【问题标题】:How to create a new column through a old one with REGEX in BigQuery?如何在 BigQuery 中使用 REGEX 通过旧列创建新列?
【发布时间】:2020-02-01 08:49:48
【问题描述】:

我想通过旧列创建一个新列。

我有这个专栏:name。这是一个String 专栏。我有这样的数据:

ALUMNNAME_SURNAME_CLASS_UNIVERSITY_YEAR_(16/09 - 22/09)

我想创建新的列拆分每个_。

在 Google 表格中,我知道如何操作 (INDEX(SPLIT(C2:C;"_");0;1...),但我如何在 BigQuery 中操作?

我理解是这样的:

SELECT
   name,
   REGEXP_EXTRACT(name, regex) AS Name,
   REGEXTRACT(name, regex) AS Surname,
   ...

您能帮我创建 RegRx 吗?我找不到如何划分每个部分。

【问题讨论】:

  • 列中的每个值是否总是正好有 5 个下划线?
  • 是的。所有值都具有相同的格式。我可以用这个提取第一个:^[a-zA-Z\ ]+ 但我想全部拆分。

标签: regex google-bigquery


【解决方案1】:

在标准 SQL 中,我们可以尝试使用SPLIT() 函数:

SELECT
    SPLIT(input, '_')[OFFSET(0)] part1,
    SPLIT(input, '_')[OFFSET(1)] part2,
    SPLIT(input, '_')[OFFSET(2)] part3,
    SPLIT(input, '_')[OFFSET(3)] part4,
    SPLIT(input, '_')[OFFSET(4)] part5
FROM (SELECT "ALUMNNAME_SURNAME_CLASS_UNIVERSITY_YEAR_(16/09 - 22/09)" input)

【讨论】:

    猜你喜欢
    • 2017-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-12
    • 1970-01-01
    • 2018-10-07
    • 1970-01-01
    • 2023-02-02
    相关资源
    最近更新 更多