繁体   English   中英

将逗号分隔的字符串转换为行

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM