当前位置:首页 » 编程语言 » sql中以逗号

sql中以逗号

发布时间: 2023-09-05 08:06:34

sql字符串怎么按逗号分割

[sql]
view
plainprint?
create
or
replace
function
f_intellect_first_sales_prov(var_sales
in
varchar2,
var_first_sales
in
varchar2,
var_split
in
varchar2)
return
varchar2
is
result
varchar2(1);
/****************************************************
**
[sql]
view
plainprint?
**
all
rights
reserved.
**
**
函数名称:f_intellect_first_sales_province
**

数:【名称】
【类型

【说明】
**
var_sales
varchar2
字符串1,逗号分隔的,如'aaa,bbb'
var_first_sales
varchar2
字符串2,逗号分割的,如'cc,aaa'
**
var_split
varchar2
要使用的分隔符
**


值:result
varchar2
处理后返回的值1/0
**

要:如果字符串2中的某一个分割的字符串在字符串1中就返回1,否则返回0
**
**
当前版本:1.0
**
**

者:liuh
**
完成日期:2013年1月29日
**

注:
****************************************************/
var_element
varchar2(4000);
var_element2
varchar2(4000);
var_tmp
varchar2(4000);
var_tmp2
varchar2(4000);
begin
result
:=
'0';
var_tmp
:=
var_sales;
var_tmp2
:=
var_first_sales;
if
var_tmp2
is
null
or
var_tmp2
=''
then
return(result);
elsif
var_tmp
is
null
or
var_tmp
=''
then
return(result);
else
/*如果字符串1不为空,在后面加上一个特殊的字符,
这样循环时就可以直接在循环内部处理,不然需要在最外面循环出再一次处理var_tmp,因为最后一次var_tmp中不含有分隔符,不会进行loop循环*/
var_tmp
:=
var_tmp
||
var_split
||
'-1';
end
if;
while
instr(var_tmp,
var_split)
>
0
loop
/****循环字符串1,每次获得一个var_element****/
var_element
:=
substr(var_tmp,
1,
instr(var_tmp,
var_split)
-
1);
var_tmp
:=
substr(var_tmp,
instr(var_tmp,
var_split)
+
length(var_split),
length(var_tmp));
while
instr(var_tmp2,
var_split)
>
0
loop
/****循环字符串2,每次获得一个var_element2****/
var_element2
:=
substr(var_tmp2,
1,
instr(var_tmp2,
var_split)
-
1);
var_tmp2
:=
substr(var_tmp2,
instr(var_tmp2,
var_split)
+
length(var_split),
length(var_tmp2));
/*如果字符串1中有字符串2中的一个值,返回1*/
if
var_element
=
var_element2
then
result
:=
'1';
return(result);
end
if;
end
loop;
/*最后一个截取的var_tmp2
不会进入循环
所以在此处处理
如果字符串1中含有字符串2的一个值,返回1*/
if
var_element
=
var_tmp2
then
result
:=
'1';
return(result);
end
if;
end
loop;
return(result);
end
f_intellect_first_sales_prov;

② sql以逗号分隔的字符串查询每个字符出现的个数

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<len(@str)
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)

热点内容
如何登录微信找回密码 发布:2025-03-13 05:06:20 浏览:448
pc游戏编程人机博弈源码 发布:2025-03-13 04:51:45 浏览:604
手机原生配置低怎么玩流畅 发布:2025-03-13 04:35:31 浏览:735
分线器安卓供电口有什么用 发布:2025-03-13 04:19:54 浏览:136
端口访问关系 发布:2025-03-13 03:49:50 浏览:789
运用零基预算法 发布:2025-03-13 03:45:30 浏览:791
安卓服务器搭建web 发布:2025-03-13 03:40:26 浏览:317
铜板算法 发布:2025-03-13 03:40:25 浏览:621
ins怎么保存图片安卓 发布:2025-03-13 03:38:14 浏览:214
什么数据库快 发布:2025-03-13 03:34:38 浏览:52