gpt4 book ai didi

sql - 将逗号分隔的列数据拆分为多列(可变大小)

转载 作者:行者123 更新时间:2023-11-29 14:15:12 24 4
gpt4 key购买 nike

需要一些帮助将 Postgres 中的列数据(字符串)拆分为多个虚拟列,例如:

---------column-------
data1;data2;data3 -
data1;data3 -
data1 -

进入

- Col1 ---- Col2 ---- Col3
1 | 1 | 1
1 | 0 | 1
1 | 0 | 0

我知道最大列数,因此我可以预设虚拟列。我需要做某种 for 循环吗?

日本

最佳答案

您可以使用 split_part():

select split_part(col, ';', 1) as col1, 
split_part(col, ';', 2) as col2,
split_part(col, ';', 3) as col1
from the_table;

或者效率稍微高一点,因为每行只拆分一次:

select c[1] as col1, 
c[2] as col2,
c[3] as col3
from (
select string_to_array(col, ';') as c
from the_table
) t;

关于sql - 将逗号分隔的列数据拆分为多列(可变大小),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51162896/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com