日期:2014-05-17  浏览次数:20575 次

条件加NOT EXISTS
有段sql 条件需要加NOT EXISTS语句

原本条件语句:
SQL code

where hzhbid = @hzhb and djb = @djb and bb= @bb



要求如果 @djb = 102 则条件后加
SQL code

NOT EXISTS(select * from tpDanJia where djb = 102 and pf=d.pf)


否则不加

------解决方案--------------------
if @djb = 102
begin
加条件的查询语句
end
else
begin
不加条件的查询语句
end
------解决方案--------------------
我只是就是论事,没说一定要用啊,仅供参考而已。而且如果条件很多的话,可能if/else反而不好。

declare @sql nvarchar(max)
 
 set @sql ='select * from 表 where hzhbid = '+CONVERT(hzhbid的类型,@hzhb)+' and djb = '+CONVERT(djb的类型,@djb)+' and bb= '+CONVERT(bb的数据类型,@bb)+''+case when @djb = 102 then 'and NOT EXISTS(select * from tpDanJia where djb = 102 and pf=d.pf) ' 
 EXEC (@sql)

给你个大概,当然,如果条件就1、2个,用if/else就可以了