--try
create procedure sp_test
@ids varchar(8000)
as
begin
select top 2000 id=identity(int,1,1) into # from syscolumns a,syscolumns b
select
字段=substring(@ids,b.id,charindex(',',@ids+',',b.id)-b.id)
from # b
where substring(','+@ids,b.id,1)=','
order by b.id
drop table #
end--测试
sp_test '020,021,022'
--结果
字段
----------
020
021
02(所影响的行数为 3 行)-删除存储过程
Drop PROC sp_test
create procedure sp_test
@ids varchar(8000)
as
begin
select top 2000 id=identity(int,1,1) into # from syscolumns a,syscolumns b
select
字段=substring(@ids,b.id,charindex(',',@ids+',',b.id)-b.id)
from # b
where substring(','+@ids,b.id,1)=','
order by b.id
drop table #
end--测试
sp_test '020,021,022'
--结果
字段
----------
020
021
02(所影响的行数为 3 行)-删除存储过程
Drop PROC sp_test
CREATE FUNCTION f_splitSTR(
@s varchar(8000), --待分拆的字符串
@split varchar(10) --数据分隔符
)RETURNS @re TABLE(col varchar(100))
AS
BEGIN
DECLARE @splitlen int
SET @splitlen=LEN(@split+'a')-2
WHILE CHARINDEX(@split,@s)>0
BEGIN
INSERT @re VALUES(LEFT(@s,CHARINDEX(@split,@s)-1))
SET @s=STUFF(@s,1,CHARINDEX(@split,@s)+@splitlen,'')
END
INSERT @re VALUES(@s)
RETURN
END
GO
但我看了一下,我的参数是这样的
@ids='''020'',''021'',''022'''请问可以吗,谢谢啊,搞定就结贴
@ids varchar(8000)
as
begin
select top 2000 id=identity(int,1,1) into # from syscolumns a,syscolumns b
select
字段=replace(substring(@ids,b.id,charindex(',',@ids+',',b.id)-b.id),'''','')
from # b
where substring(','+@ids,b.id,1)=','
order by b.id
drop table #
end
--测试sp_test '''020'',''021'',''022'''--结果
字段
---------------------
020
021
022(所影响的行数为 3 行)