oracle sql 实现查询时把一字符串按逗号分割,返回分割后的份数?

如:有一字符“a,b,c,d”查询时返回4;有一字符“张三,李四,王五,赵六”查询时返回4... 如:有一字符“a,b,c,d”查询时返回4;有一字符 “张三,李四,王五,赵六” 查询时返回4 展开
 我来答
来学习的DBA
推荐于2017-11-27 · TA获得超过298个赞
知道小有建树答主
回答量:369
采纳率:0%
帮助的人:208万
展开全部

上代码上图

select length('张三,李四,王五,赵六')-length(replace('张三,李四,王五,赵六',','))+1 from dual;

育知同创教育
2016-02-03 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
oracle 中可以用connect by把字符串按都好分割:
比如定义字符串:
pv_no_list :='23,34,45,56';
SELECT DISTINCT REGEXP_SUBSTR (pv_no_list,'[^,]+',1,LEVEL) as "token"
FROM DUAL
CONNECT BY REGEXP_SUBSTR (pv_no_list,'[^,]+',1,LEVEL) IS NOT NULL
order by 1
返回结果:
TOKEN
23
34
45
56
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
雨夜ぜ狂想5f5
2015-05-05 · TA获得超过178个赞
知道小有建树答主
回答量:476
采纳率:33%
帮助的人:257万
展开全部
declare @a varchar(32),@n int =1
set @a='张三,李四,王五,赵六'   --给@a赋值
while charindex(',',@a)>0 
begin
 set @a=substring(@a,charindex(',',@a)+1,len(@a)-charindex(',',@a))
 set @n=@n+1
end 
select @n     --得到一个字符被','分割的份数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d9b156865
2015-05-05 · TA获得超过165个赞
知道小有建树答主
回答量:384
采纳率:33%
帮助的人:193万
展开全部
不太明白你的意思?
select len(replace(Col,',','--'))-len(Col)+1 fromTab
这样?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式