gpt4 book ai didi

sql - 将列拆分为多行

转载 作者:行者123 更新时间:2023-12-04 23:09:41 25 4
gpt4 key购买 nike

我有一个包含多个值的列的表,该列包含以逗号 (,) 分隔的多个值,并希望将其拆分,因此我将每个站点放在自己的行上,但前面有相同的数字。

所以我的选择会从这个输入

table Sitetable

Number Site
952240 2-78,2-89
952423 2-78,2-83,8-34

创建此输出
Number             Site
952240 2-78
952240 2-89
952423 2-78
952423 2-83
952423 8-34

我发现了一些我认为可行的东西,但没有。
select Number, substr(
Site,
instr(','||Site,',',1,seq),
instr(','||Site||',',',',1,seq+1) - instr(','||Site,',',1,seq)-1) Site
from Sitetable,(select level seq from dual connect by level <= 100) seqgen
where instr(','||Site,',',1,seq+1) > 0

Edit2:我看到我实际上一直有一部分工作在选择(我是一个蹩脚的测试员:(),上面的一个工作,但唯一的问题是它失去了最后一个站点值,但我会尝试工作一点那..

Edit3:现在它的工作
select Number, substr(
Site,
instr(','||Site,',',1,seq),
instr(','||Site||',',',',1,seq+1) - instr(','||Site,',',1,seq)-1) Site
from Sitetable,(select level seq from dual connect by level <= 100) seqgen
where instr(','||Site,',',1,seq) > 0

最佳答案

而正确答案是。

select Number, substr(
Site,
instr(','||Site,',',1,seq),
instr(','||Site||',',',',1,seq+1) - instr(','||Site,',',1,seq)-1) Site
from Sitetable,(select level seq from dual connect by level <= 100) seqgen
where instr(','||Site,',',1,seq) > 0

关于sql - 将列拆分为多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3713107/

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