oracle sql 实现查询时把一字符串按逗号分割,返回分割后的份数?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle sql 实现查询时把一字符串按逗号分割,返回分割后的份数?相关的知识,希望对你有一定的参考价值。
如:有一字符“a,b,c,d”查询时返回4;有一字符 “张三,李四,王五,赵六” 查询时返回4
上代码上图
select length('张三,李四,王五,赵六')-length(replace('张三,李四,王五,赵六',','))+1 from dual;
参考技术A 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 参考技术B 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 --得到一个字符被','分割的份数 参考技术C 不太明白你的意思?
select len(replace(Col,',','--'))-len(Col)+1 fromTab
这样?
以上是关于oracle sql 实现查询时把一字符串按逗号分割,返回分割后的份数?的主要内容,如果未能解决你的问题,请参考以下文章