【问题标题】:How to extract a specific portion of a string in bigquery如何在bigquery中提取字符串的特定部分
【发布时间】:2022-11-18 05:36:55
【问题描述】:

我有一个看起来类似于此的字符串:

28f1e5f7-47c6-4d67-bcbf-9e807c379076-9780-gThGFkHY0CeFCPwA6Efys7

我想根据“-”拆分它,但也告诉它在什么位置或点进行拆分。我的目标是删除最后两个字符串

我想要的最终结果应该是这样的:

28f1e5f7-47c6-4d67-bcbf-9e807c379076

我知道我可以拆分偏移量然后连接。我想知道是否有更直接的方法,因为它需要我拆分 5 次然后连接 5 次?

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    你能试试这个查询吗?

    with myTable as (
      select 1 as id, "28f1e5f7-47c6-4d67-bcbf-9e807c379076-9780-gThGFkHY0CeFCPwA6Efys7" as sampleString
      union all select 2 as id, "28f1e5f7-47c6-4d67-bcbf-9e807c379076-9780-gThGFkHY0CeFCPwA6Efys7-dhushkdha" as sampleString
    )
    
    
    SELECT id, sampleString,
      (
        SELECT STRING_AGG(samp, '-' ORDER BY index) 
        FROM UNNEST(SPLIT(sampleString, '-')) samp WITH OFFSET index 
        WHERE index BETWEEN 0 AND (select array_length(split(sampleString,'-')) - 3)
      ) 
    FROM myTable
    

    此查询将省略最后两个值,因为它由“-”分隔

    输出:

    我在第二列中添加了另一个值,只是为了测试是否会删除最后两个值。

    【讨论】:

      猜你喜欢
      • 2014-09-13
      • 1970-01-01
      • 2017-07-08
      • 1970-01-01
      • 1970-01-01
      • 2017-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多