![](/img/trans.png)
[英]Using Oracle REGEXP_SUBSTR to extract uppercase data separated by underscores
[英]Extract all elements from a string separated by underscores using regex
我正在嘗試捕獲所有元素並將其存儲在與以下字符串不同的列中,通過下划線(廣告的廣告系列名稱)分隔,然后我希望將其與具有真實值的主表進行比較以確定數據的准確性記錄。
我的第一個元素提取是: REGEXP_EXTRACT(campaign_name, r"[^_+]{3}")) as parsed_campaign_agency
我只提取了前 3 個字母,因為根據命名約定(真值表),機構名稱僅由 3 個字母組成。
警告:某些元素也可以具有可變長度。 例如。 第三個元素“CrossBMC”的長度可以是 3 個字母或更多。
我是 regex 的新手,數據位於 SQL 表中(在 BigQuery 中),所以我認為它可以通過 SQL 的 regex_extract 實現,但我遇到的問題是一次提取所有元素。
任何幫助表示贊賞:)
如果下划線的數量不變並且知道您可以使用SUBSTRING_INDEX ,例如:
SELECT
SUBSTRING_INDEX(campaign_name,'_',1) first,
SUBSTRING_INDEX(SUBSTRING_INDEX(campaign_name,'_',2),'_',-1) second,
SUBSTRING_INDEX(SUBSTRING_INDEX(campaign_name,'_',3),'_',-1) third
FROM your_table;
在這里你可以嘗試一個例子SQLize.online
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.