mssql sqlserver 当sql参数传入带逗号的字符串-处理方法分享


摘要:
下文讲述当传入参数为带逗号的组合字符串时,如何通过sql函数将其转换为数据表供其它sql子查询的方法分享,如下所示:
实验环境:sqlserver 2008 R2


例:
在数据库中我们将用户的读(1)写(2)删(3)权限分别存储指定表指定列中,数据表列中会存在以下组合之
(‘1,2’),(‘3,2’),(‘1,3’),(‘1,2,3’)
—分别代表拥有
读写
写删
读删
读写删
—-下文将分享sql脚本将转换结果放入临时表的方法,如下所示:

 declare @roleIdList Nvarchar(500);
Set @roleIdList='1,2,3';
Declare @tmpList Table
(
    roleId Int
)
While(CHARINDEX(',',@roleIdList)<>0)
Begin
    Insert Into @tmpList(roleId) Values
    (CONVERT(Int,
    Substring(@roleIdList,1,CHARINDEX(',',@roleIdList)-1)));
    
    
    Set @roleIdList=STUFF(@roleIdList,1,CHARINDEX(',',@roleIdList),'');
End
insert   into @tmpList (roleId) values(CONVERT(Int,@roleIdList));
select * From @tmpList 
mssql_sqlserver_字符串分隔为临时表方法分享

mssql_sqlserver_字符串分隔为临时表方法分享