您可以使用 split() 函数,它返回数组,您可以使用数组索引 [] 访问元素:
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,如果逗号存在但它们之间有空字符串,它将返回空,因此请相应地调整您的逻辑。
如果您更喜欢 regexp_extract 函数:
regexp_extract('49b8b35e-b62c-4a42-9d73-192d131d127a,03c8a7e0-5153-11ec-873a-0242ac11000a,eec8aee4-0500-4940-b319-15924cc2d248', '^([^,]+),*([^,]*),*([^,]*)',1) as value1,
regexp_extract('49b8b35e-b62c-4a42-9d73-192d131d127a,03c8a7e0-5153-11ec-873a-0242ac11000a,eec8aee4-0500-4940-b319-15924cc2d248', '^([^,]+),*([^,]*),*([^,]*)',2) as value2,
regexp_extract('49b8b35e-b62c-4a42-9d73-192d131d127a,03c8a7e0-5153-11ec-873a-0242ac11000a,eec8aee4-0500-4940-b319-15924cc2d248', '^([^,]+),*([^,]*),*([^,]*)',3) as value3
使用相同的模式,只是组号不同。如果元素不存在,则 regexp_extract 返回空字符串。