日期:2014-05-18  浏览次数:20493 次

请教大家一个sql存储过程或者函数
现在有一个参数传给存储过程,存储过程中有条sql语句条件是in
……where nme in(‘参数1’,‘参数2’,‘参数3’,‘参数4’)
程序传得参数格式是:参数1,参数2,参数3,参数4
@parm=txt1,txt2,txt3,txt4
现在需要一个函数或者存储过程将它们转换成:'txt1','txt2','txt3','txt4'



------解决方案--------------------
亲,有一个charindex可以试试哦~~~
where 
charindex(','+rtrim(nme)+',' , ','+@parm+',' ) >0


如果要华丽变身,无非是set @parm = ''''+replace(@parm,',',''',''')+''''
------解决方案--------------------
SQL code

/*try*/
declare @parm nvarchar(400)
set @parm = '510-LIND RMA,511-LIND RMA'
 /***/
 insert into LPACKING_D (PAC_NB,PAC_SQ,SO_NB,SO_SQ,SO_QT,ITEM_CD,EXCH_UM,EXCH_AM)
select PAC_NB='11',
row_number() over(order by CO_CD) as row_number ,
SO_NB,SO_SQ,SO_QT,ITEM_CD,EXCH_UM,EXCH_AM 
from dzicube..LSO_D  
where charindex(','+rtrim(so_nb)+',' , ','+@parm+',')>0