[英]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.