簡體   English   中英

需要 regexp_extract 幫助,初學者

[英]need regexp_extract help, beginner

我有字符串列“49b8b35e-b62c-4a42-9d73-192d131d127a,03c8a7e0-5153-11ec-873a-0242ac11000a,eec8aee4-0500-4940-b319-15924cc2d248”

此字符串列有 3 個值,由“,”分隔。 (值 1,值 2,值 3)。 不能保證 vaule2 和 value3 必須始終存在。 但 value1 總是如此。

所以我需要將此單列拆分為 3 個不同的列,同時牢記它們存在的上述條件,並且它們需要在“,”之前分隔成一個新列。

到目前為止,我寫過

select regexp_extract('49b8b35e-b62c-4a42-9d73-192d131d127a,03c8a7e0-5153-11ec-873a-0242ac11000a,eec8aee4-0500-4940-b319-15924cc2d248', '^(.+?),') as value1

但在那之后,我的邏輯和思維給了我錯誤,我沒有運氣。

您可以使用 split() function,它返回數組,您可以使用數組索引 [] 訪問元素:

select split("49b8b35e-b62c-4a42-9d73-192d131d127a,03c8a7e0-5153-11ec-873a-0242ac11000a,eec8aee4-0500-4940-b319-15924cc2d248",',')[0] --to get first element

對第一個元素使用 [0],對第二個元素使用 [1],對第三個元素使用 [2],如果某些元素不存在且沒有逗號(例如 split() 返回 size=1 的數組並且您想要第二個元素),它將返回NULL,如果逗號存在但它們之間有空字符串,它將返回空,所以相應地調整你的邏輯

暫無
暫無

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

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