VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1090|回复: 6

如果有字符串"aa,bb,cc,dd" 如何实现按照","的分隔,分别取出字符串"aa","bb","cc","dd"呢

[复制链接]

1

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-2-9 22:00:02 | 显示全部楼层 |阅读模式
如果有字符串"aa,bb,cc,dd" 如何实现按照","的分隔,分别取出字符串"aa","bb","cc","dd"呢
回复

使用道具 举报

0

主题

114

帖子

69.00

积分

新手上路

Rank: 1

积分
69.00
发表于 2020-4-4 07:45:01 | 显示全部楼层
substring('aa,bb,cc,dd',1,2)
substring('aa,bb,cc,dd',4,2)
substring('aa,bb,cc,dd',7,2)
substring('aa,bb,cc,dd',10,2)
回复

使用道具 举报

1

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-4-4 16:00:01 | 显示全部楼层
不是这样的  里面字符数目不是一定就是2  
字符串有可能是('aa','dfsd','sdfaw','dsfdsfadsf')
回复

使用道具 举报

1

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-4-4 20:15:01 | 显示全部楼层
最好能找出每个","的位置
回复

使用道具 举报

0

主题

39

帖子

23.00

积分

新手上路

Rank: 1

积分
23.00
发表于 2020-4-6 18:45:02 | 显示全部楼层
instr 函数找到,的位置

循环处理
回复

使用道具 举报

0

主题

39

帖子

23.00

积分

新手上路

Rank: 1

积分
23.00
发表于 2020-4-7 14:45:01 | 显示全部楼层

DECLARE
j INT;
aa VARCHAR2(300);
bb VARCHAR2(10);
cc VARCHAR2(20);
BEGIN
j:=1;
aa:='aa,bb,cc,dd';
bb:=',';
WHILE j<>0
LOOP
        j:=INSTR(aa,bb);
        IF j=0 THEN
           cc:=SUBSTR(aa,j+1,LENGTH(aa));
        ELSE
        cc:=SUBSTR(aa,1,j-1);
        aa:=SUBSTR(aa,j+1,LENGTH(aa));
        END IF;
        --DBMS_OUTPUT.PUT_LINE(aa);
        --DBMS_OUTPUT.PUT_LINE(j);
        DBMS_OUTPUT.PUT_LINE(cc);
END LOOP;
END;
回复

使用道具 举报

0

主题

39

帖子

23.00

积分

新手上路

Rank: 1

积分
23.00
发表于 2020-4-7 15:30:02 | 显示全部楼层
aa
bb
cc
dd
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表