我有一个包含字符串数据的表,如下所示:
id | string_data
1 | red;green;blue
2 | orange
3 | purple;cyan
我需要将字符串数据拆分为具有行号的项目:
id | num | item
1 | 1 | red
1 | 2 | green
1 | 3 | blue
2 | 1 | orange
3 | 1 | purple
3 | 2 | cyan
我知道 regexp_split_to_table() 但我在将其与 row_number() 结合使用时遇到问题。有人知道如何解决这个问题吗?谢谢!
如果您不需要正则表达式,那么使用它会更有效string_to_array()
代替regexp_split_to_table()
。要获取数组索引,请使用with ordinality
select t.id,
x.idx,
x.word
from the_table t,
unnest(string_to_array(string_data, ';')) with ordinality as x(word, idx)
order by t.id, x.idx;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)