编写一个sql语句,把b列中的数据用逗号分隔开,变成很多?谢谢

 我来答
wucui2007ah
2014-02-25 · TA获得超过120个赞
知道小有建树答主
回答量:159
采纳率:0%
帮助的人:126万
展开全部
这个我做过,拆分逗号分隔符变列
select a,
t.ca,
c.lv,instr(t.ca, ',', 1, c.lv) + 1,
substr(t.ca,
instr(t.ca, ',', 1, c.lv) + 1,
instr(t.ca, ',', 1, c.lv + 1) -
(instr(t.ca, ',', 1, c.lv) + 1)) AS c
from (select a,
',' || b || ',' AS ca,
b,
LENGTH(b),
length(b || ','),
REPLACE(b, ','),
length(REPLACE(b, ',')), --删除逗号的长度
nvl(length(REPLACE(b, ',')), 0), --空值长度为空,因此要将空值替换为0
length(b || ',') - nvl(length(REPLACE(b, ',')), 0) AS cnt --以逗号分隔的字符串个数,先在原来的长度上加1 计算去除所有逗号后字符串长度,再,拿这个
FROM TEST_A) t,
   (select LEVEL lv from dual CONNECT BY LEVEL <= 100) c
where c.lv <= t.cnt --逗号数量在100以内
KKY12
2014-02-25 · TA获得超过1700个赞
知道小有建树答主
回答量:260
采纳率:0%
帮助的人:147万
展开全部
select to_char(listagg(B, ', ') within group(order by B))
from (select 1 as B
from dual
union
select 2 AS B
from dual
union
select 3 AS B from dual)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Ivent_Lin
2014-02-25 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:147
采纳率:0%
帮助的人:97.3万
展开全部
你有没有想过,变成很多之后放在哪里?
追问
还放在数据库中的表里面。
追答
百度一下oracle split函数,有很多写好的.

ps:每个逗号分开一列?你知道有多少列?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式