根据多条件查询临时表 想得到不同结果集的方法

www.6766.com ,当自家写下如下sql语句时,小编收获了输入@c参数时想拿到的结果集。select *
from @tb t where t.id in (select id from tb where f = @c卡塔尔国但假设有@a,@b,@c,而它们分别想从@tb中获得差别的结果集,比方 复制代码 代码如下: if @a is not null begin
–获得@a想得到的 end if @b is not null begin –获得@b想博得的 end if @c
is not null begin –获得@c想博得的 end
那样做好像没什么难点,但如若@a和@b是联合具名的,以至是@a,@b,@c,@d,@e,@f等等N各个标准构成,这样就不佳办了。所以必得先build好@tb,最终一遍性查询
–构造@tb select * from @tb
若是作者早已因而@a,@b获得了意气风发种@tb结果集,当自家重新利用@c进行标准决断时,那样就能够覆盖刚才的结果。
基本上能用“删除不切合条件的笔录”的章程来做,由于@tb已经获取了@a,@b想获取的结果,所以生龙活虎旦删除掉不相符@c的结果就能够了。完。
复制代码 代码如下: if @c is not null
begin delete c from @tb c where c.id not in (select id from tb where f =
@c卡塔尔 end select * from @tb

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图