首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

not in 后面怎么跟参数

2012-01-19 
not in 后面如何跟参数?我有一个sql语句:...wheredetailnotin( 误工费 , 加急费 )如何把误工费,加急费改成

not in 后面如何跟参数?
我有一个sql语句:

...   where   detail   not   in   ( '误工费 ', '加急费 ')

如何把   误工费,加急费   改成参数@a,@b,如果参数数目不定,又改如何处理?

[解决办法]
作成存储过程参数

create proc @s varchar(100)
as
exec ( 'select .... where detail not in( '+@s+ ') ')
[解决办法]
declare @S varchar(4000)
set @S=111,222,33 --如果你是这样传的话
exec ( 'select * from [table] where detail not in( ' ' '+replace(@S, ', ', ' ' ', ' ' ')+ ' ' ') ')

[解决办法]
declare @SQL varchar(8000)
declare @a varchar(20)
declare @b varchar(20)

set @a= '误工费 '
set @b= '加急费 '
set @SQL= '... where detail not in ( ' ' '+@a+ ' ' ', ' ' '+@b+ ' ' ' '
exec(@SQL)

[解决办法]
将数目不定的参数转成 aas,dff,ddd 的形式 用一个参数@a处理
where charindex( ', '+rtrim(detail)+ ', ' , ', '+@a+ ', ')> 0
如果有前台直接在前台生成not in ( 'aas ', 'dff ', 'ddd ')语句即可

热点排行