当前位置:首页 » 存储配置 » 存储过程split

存储过程split

发布时间: 2022-06-20 22:40:10

‘壹’ informix的存储过程中,怎么实现类似split的功能

shell处理完再给informix使用不就行了

‘贰’ sqlserver 查询语句,存储过程split

程序中处理性能会好些
在sql中写的话 我会写个函数来获取对应的name
写两个个函数
一个用于将1,2,3转换成表
一个用于获取name
F_Split
F_GetNavName

‘叁’ 我就是想在存储过程当中,传入一个字符串(不知道长度的)。然后把这个字符传里面的字符全部拆分开来。

给你个存储过程

CREATE PROCEDURE p_split
@c varchar(8000),
@split varchar(5)

as
declare @t table( word varchar(20) )

begin

while(charindex(@split,@c)<>0)
begin
insert @t( word) values (substring(@c,1,charindex(@split,@c)-1))
set @c = stuff(@c,1,charindex(@split,@c),'') -- 删除指定长度的字符并在指定的起始点插入另一组字符
end
insert @t(word) values (@c) ---最后一个不含分隔的加进来
select distinct * from @t
end
GO

还是用表变量

‘肆’ mysql存储过程中 如何拆分字符串

MySQL分割字符串应该如何实现呢?下面就为您介绍MySQL分割字符串的实现方法步骤,希望可以让您对MySQL分割字符串有更多的了解。

例如:update `edw_video` set company = substring(keyword,1,length(SUBSTRING_INDEX(keyword,",",1)))

名称:SPLIT_SUB_STR1(取得split字符串的第一段)
参数:str 要split的目标字符串 (输入格式为‘11,2,3,4,5,6’; 输出为‘2,3,4,5,6’)
delimiter 分隔符 (‘,’)
split1 输出第一项(‘11’)
存储过程
CREATE DEFINER=`root`@`%` PROCEDURE `SPLIT_SUB_STR0`(inout str VARCHAR(1000) ,delimiter VARCHAR(1), out split1 VARCHAR(20))

BEGIN
# 名称 SPLIT_SUB_STR1 取得分割字符串的第一段字符
# 参数inout str VARCHAR(1000) ,delimiter VARCHAR(1), out split0 VARCHAR(20)
# 输入完整字符串,输出去掉取得第一项后的字符串; 分隔符; 输出split的第一个项目

#分割出第一段字符串不包括分隔符的长度
DECLARE SUB_STR_LENGTH INT;

# SUBSTRING_INDEX函数取得目标字符串左侧第n个分割符左侧的部分,n为负时返回右侧第n个的右部分
SET SUB_STR_LENGTH = length(SUBSTRING_INDEX(str,delimiter,1));

#截取第一段字符串,不包括分隔符,放入输出参数里
SET split0 = substring(str, 1, SUB_STR_LENGTH);

# 取得去掉第一个字符串和分隔符的字符串,进行下次循环取得下个字符串
SET str = substring(str, SUB_STR_LENGTH + 2 );
#测试一下输出是否正确
#SELECT SUB_STR_LENGTH, SUB_STR_SPLIT0, STR;
END

调用实例

CREATE DEFINER=`root`@`%` PROCEDURE `test`()
BEGIN
#目标字符串
set @a = ’1,2,3,4,5,6,12‘;
# 分隔符
set @c = ',';
# 存储风格后的字符串
set @b = '';

REPEAT
# 调用上面的存储过程
CALL SPLIT_SUB_STR0(@a, ',', @c);
#将取得的字符串拼接,测试用
set @b = concat(@b, @c);
#当目标字符串为空时,停止循环
UNTIL @a = ''
END REPEAT;
# 查看结果
select @a, @c, @b;

END;

‘伍’ mysql 存储过程或函数 split 怎么写

mysql 存储过程或函数 split 怎么写
1、函数必须指定返回值,且参数默认为IN类型。
2、存储过程没返回值,参数可以是 IN,OUT,IN OUT类型,有的人可能会理解成OUT 也算是返回值。
3、调用方式:函数 select my_fun() ;过程 call my_pro( ) ;

‘陆’ 存储过程如何 解析字符串

方法:
1.创建split函数(转)
create function f_split(@SourceSql varchar(8000),@StrSeprate varchar(10))
returns @temp table(a varchar(100))
--实现split功能 的函数
--date :2005-4-20
--Author :Domino
as
begin
declare @i int
set @SourceSql=rtrim(ltrim(@SourceSql))
set @i=charindex(@StrSeprate,@SourceSql)
while @i>=1
begin
insert @temp values(left(@SourceSql,@i-1))
set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
set @i=charindex(@StrSeprate,@SourceSql)
end
if @SourceSql<>'\'
insert @temp values(@SourceSql)
return
end

用法:select * from dbo.f_split('A:B:C:D:E',':')

2.存储过程

CREATE PROCEDURE InsertRecord
@Qstring varchar(50),
AS
insert into names(name1,name2,name3,name4) values
(select * from dbo.f_split(@Qstring,',')

3.调用存储过程

‘柒’ 关于SQLserver 存储过程 如何切割一个字符串 转化为数组

Create Function [dbo].[Split](@Sql varchar(8000),@Splits varchar(10))
returns @temp Table (a varchar(100))
As
Begin
Declare @i Int
Set @Sql = RTrim(LTrim(@Sql))
Set @i = CharIndex(@Splits,@Sql)
While @i >= 1
Begin
Insert @temp Values(Left(@Sql,@i-1))
Set @Sql = SubString(@Sql,@i+1,Len(@Sql)-@i)
Set @i = CharIndex(@Splits,@Sql)
End
If @Sql <> ''
Insert @temp Values (@Sql)
Return
End

‘捌’ oracle存储过程传入一个字符串参数'1,2,3,4,5,6,7,8',如何分割并转为数字

create or replace type type_split as table of varchar2(50); --创建一个type,如果为了使split函数具有通用性,请将其size 设大些。

--创建function
create or replace function split
(
p_list varchar2,
p_sep varchar2 := ','
) return type_split pipelined
is
l_idx pls_integer;
v_list varchar2(50) := p_list;
begin
loop
l_idx := instr(v_list,p_sep);
if l_idx > 0 then
pipe row(substr(v_list,1,l_idx-1));
v_list := substr(v_list,l_idx+length(p_sep));
else
pipe row(v_list);
exit;
end if;
end loop;
return;
end split;

使用:
select * from table(split('1,2,3,4,5,6,7,8'
,','));
然后就可以通过“,”来分割数字了

热点内容
java判断数据库是否存在 发布:2025-01-04 07:58:55 浏览:364
php高级培训 发布:2025-01-04 07:48:58 浏览:906
ubuntu源码包 发布:2025-01-04 07:40:54 浏览:285
java实现注册 发布:2025-01-04 07:39:48 浏览:864
js压缩视频 发布:2025-01-04 07:39:47 浏览:738
光遇安卓为什么不更新纯净录屏 发布:2025-01-04 07:27:43 浏览:463
为什么安卓手机不出面容识别 发布:2025-01-04 07:27:42 浏览:710
汽车用压缩天然气钢瓶 发布:2025-01-04 07:17:57 浏览:725
rms服务器搭建 发布:2025-01-04 07:16:26 浏览:466
我的世界租服务器需要钱吗 发布:2025-01-04 07:14:08 浏览:538