Postgresql 在SQL中拆分字符串

Postgresql 在SQL中拆分字符串,postgresql,Postgresql,在PostgreSQL中,如何将字符串拆分为字符并在每个字符后添加新行 比如说 num desc 1 Hello 2 Bye num desc 1 H e l l o 2 B y e SQLFiddle: 然而,字符的顺序无法保证,实现这一点有点复杂 基于: 编辑: 如果您只需要为每个id指定一个字符串,其中字符由换行符分隔,则可以使用以下方法: select id,

在PostgreSQL中,如何将字符串拆分为字符并在每个字符后添加新行

比如说

num  desc
 1    Hello
 2    Bye

num  desc
 1    H
      e
      l
      l
      o

 2    B
      y 
      e
SQLFiddle:

然而,字符的顺序无法保证,实现这一点有点复杂

基于:

编辑:

如果您只需要为每个id指定一个字符串,其中字符由换行符分隔,则可以使用以下方法:

select id, 
       array_to_string(regexp_split_to_array(descr,''), chr(10))
from data
order by id

您可能可以使用此页上的函数:谢谢,我可以使用此函数,我正在寻找的是将字符串拆分为字符,并在同一单元格中用换行符
“chr(10)”
分隔,但这也应该可以。谢谢!这正是我想要的:)
select case 
         when row_number() over (partition by id order by rn) = 1 then id 
         else null
       end as id_display, 
       ch_arr[rn]
from (
  select *, 
         generate_subscripts(ch_arr, 1) AS rn
  from (
    select id, 
           regexp_split_to_array(descr,'') as ch_arr
    from data
  ) t1
) t2
order by id, rn;
select id, 
       array_to_string(regexp_split_to_array(descr,''), chr(10))
from data
order by id