gpt4 book ai didi

google-bigquery - BigQuery - 仅按分隔符拆分一次

转载 作者:行者123 更新时间:2023-12-02 03:05:15 26 4
gpt4 key购买 nike

有没有办法只用分隔符分割一次?我的数据可能在多个索引处具有分隔符。我希望能够将一个字段分成两个单独的字段。

例如我希望在使用句点作为分隔符时将字符串 how.now.brown.cow 拆分为两个字段:[how, now.brown.cow]。

SPLIT({field}, 'delimiter')[SAFE_OFFSET(0)] 可以很好地获取第一部分,但我的数据中可能有不相等的数组长度,因此我在连接其他索引时遇到了麻烦。

最佳答案

以下适用于 BigQuery 标准 SQL

#standardSQL
WITH `project.dataset.table` AS (
SELECT 'how.now.brown.cow' col UNION ALL
SELECT 'how'
)
SELECT col,
SPLIT(col, '.')[OFFSET(0)] AS first_item,
( SELECT STRING_AGG(item, '.' ORDER BY OFFSET)
FROM UNNEST(SPLIT(col, '.')) item WITH OFFSET
WHERE OFFSET > 0
) AS rest_of_items
FROM `project.dataset.table`

带输出

Row col                 first_item  rest_of_items    
1 how.now.brown.cow how now.brown.cow
2 how how null

注意:以上只是其中一种方法。看起来有很多方法可以达到相同的结果 - 例如

#standardSQL
WITH `project.dataset.table` AS (
SELECT 'how.now.brown.cow' col UNION ALL
SELECT 'how'
)
SELECT col,
REGEXP_EXTRACT(col, r'^([^.]*)\.?') AS first_item,
REGEXP_EXTRACT(col, r'^[^.]*\.?(.*)$') AS rest_of_items
FROM `project.dataset.table`

带输出

Row col                 first_item  rest_of_items    
1 how.now.brown.cow how now.brown.cow
2 how how

关于google-bigquery - BigQuery - 仅按分隔符拆分一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59183243/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com