如何在BigQuery中使用REGEX通过旧列创建新列?

如何在BigQuery中使用REGEX通过旧列创建新列?,regex,google-bigquery,Regex,Google Bigquery,我想通过一个旧列创建一个新列 我有这个专栏:name。它是一个字符串列。我有这样的数据: ALUMNNAME_SURNAME_CLASS_UNIVERSITY_YEAR_(16/09 - 22/09) 我想创建新的列,将每个列拆分 在GoogleSheets中,我知道如何使用INDEXSPLITC2:C;0;1.但是在BigQuery中我怎么做呢 我知道是这样的: SELECT name, REGEXP_EXTRACT(name, regex) AS Name, REGEXT

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

我有这个专栏:name。它是一个字符串列。我有这样的数据:

ALUMNNAME_SURNAME_CLASS_UNIVERSITY_YEAR_(16/09 - 22/09)
我想创建新的列,将每个列拆分

在GoogleSheets中,我知道如何使用INDEXSPLITC2:C;0;1.但是在BigQuery中我怎么做呢

我知道是这样的:

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

你能帮我做一下RERGX吗?我找不到如何划分每个部分。

在标准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)

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