存储过程如何 解析字符串
发布网友
发布时间:2022-05-03 19:31
我来回答
共3个回答
热心网友
时间:2022-05-03 21:01
方法:
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.调用存储过程
热心网友
时间:2022-05-03 22:19
用instrb()这个函数循环取得每个‘,’的下标,然后用substr(string,i,j)取得子串。
这个是在oracle下的,你试试能不能在sqlserver2000下用。
热心网友
时间:2022-05-03 23:53
这个用个笨办法可以办到,先使用CHARINDEX()找出第一“,”的位置,再用SUBSTRING()取出第一个变量,然后找第二个“,”,依次取出就行了。~~