簡體   English   中英

提取 substring 並在 Bigquery 列中獲取第二個值

[英]Extract a substring and take second value in a Bigquery Column

我有這個數據:

id  val
1   ajkdks - jkdj
2   djs - djsd

我只想取第二個值。 這是:

id val
1  jkdj
2  djsd

如果使用 MySQL,我知道查詢:

SUBSTRING_INDEX(SUBSTRING_INDEX(val, " - ", 2)," - ",-1)

但是,如果我使用 bigquery,查詢會怎樣?

下面使用

select id, split(val, ' - ')[safe_offset(1)] val
from your_table             

如果應用於您問題中的示例數據 - output 是

在此處輸入圖像描述

我們可以使用REGEXP_EXTRACT來表達這個:

SELECT id, REGEXP_EXTRACT(val, r'[^ -]+$') AS val
FROM yourTable
ORDER BY id;

請注意,上述正則表達式方法對於val可能沒有任何連字符分隔符的情況也是穩健的,在這種情況下將返回整個值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM