[英]Convert comma separated string into rows
我有一个逗号分隔的字符串。
现在我想把这个字符串值分成每一行。
输入:
1,2,3,4,5
所需输出:
value
----------
1
2
3
4
5
我怎样才能在 sql 中实现这一点?
提前致谢。
如果您在 SQL Server 上,请使用STRING_SPLIT
函数
SELECT value
FROM STRING_SPLIT('1,2,3,4,5', ',')
否则,您可以在SUBSTRING_INDEX()
函数上循环并在临时表中插入每个字符串。
如果你使用 Postgres,你可以使用 string_to_array 和 unnest:
select *
from unnest(string_to_array('1,2,3,4,5',',') as t(value);
在 Postgres 中,您还可以使用“regexp_split_to_table()”函数。
如果您使用的是 MariaDB 或 MySQL,您可以使用递归 CTE,例如:
with recursive itemtable as (
select
trim(substring_index(data, ',', 1)) as value,
right(data, length(data) - locate(',', data, 1)) as data
from (select '1,2,3,4,5' as data) as input
union
select
trim(substring_index(data, ',', 1)) as value,
right(data, length(data) - locate(',', data, 1)) as data
from itemtable
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.