SQL函数怎样算出一个字符串逗号隔开的字符串数量

2025年03月22日 19:19
有3个网友回答
网友(1):

我是这样想的,想计算出 逗号在 字符串中出现的次数,再加一,就是了。

SQL> select length('a,7,34,4,BB') - length(replace('a,7,34,4,BB', ',', '')) + 1 from dual;

LENGTH('A,7,34,4,BB')-LENGTH(R
------------------------------
5

网友(2):

sql中可以自定义函数来统计逗号隔开的字符串的数量:
参考如下:
drop function search_dh
go
CREATE FUNCTION search_dh(@str varchar(max))
returns int--设置返回值是returns
AS
BEGIN
DECLARE @result int --返回逗号个数
declare @j int
set @result = 0
set @j = 1
while @j begin
if substring(@str,@j,1) = ',' --@j是开始位置,1位置参数是长度值
begin
set @result = @result+1
end
set @j = @j+1 --如果出现无限循环请检查参数是否加1以及位置问题
end
return @result --返回结果
END
用法:
select dbo.search_dh ('a,b,c') --引用自定义函数时需要加上dbo.前缀
SELECT x = SUBSTRING('abcdef',2, 2)

网友(3):

人家要的是数量,其实你可以把理解为长度

直接 用LEN
FOXEAMPLE:

select len(a,7,34,4,bb) from table