思路:将传入的字符串进行分隔,然后写入一张临时表中,再通过查询(in)将数据获取。
将分隔的字符串插入临时表#tbTemp中,通过t1.PROCESS_CD IN ( SELECT * from #tbTemp )获取数据
create table #tbTemp
(
strTemp VARCHAR(max)
)
IF( @PROCESS_CD IS NOT NULL OR @PROCESS_CD <>'')
BEGIN
set @PROCESS_CD = @PROCESS_CD+','
Declare @insertStr varchar(50) --截取后的第一个字符串
Declare @newstr varchar(1000) --截取第一个字符串后剩余的字符串
set @insertStr = left(@PROCESS_CD,charindex(',',@PROCESS_CD)-1)
set @newstr = stuff(@PROCESS_CD,1,charindex(',',@PROCESS_CD),'')
Insert #tbTemp Values(@insertStr)
while(len(@newstr)>0)
begin
set @insertStr = left(@newstr,charindex(',',@newstr)-1)
Insert #tbTemp Values(''+@insertStr+'')
set @newstr = stuff(@newstr,1,charindex(',',@newstr),'')
end
set @where= @where+ ' AND t1.PROCESS_CD IN ( SELECT * from #tbTemp)'
END