作者:宝宝717917 | 来源:互联网 | 2023-09-17 17:57
很多情况下,需要采用多个参数来查询一张临时表,每个参数都要求得到不同的临时表结果集。而往往某些参数并不对应这张临时表中的字段,而是对应与该临时表ID关联的另一张表的字段。当我写下如
很多情况下,需要采用多个参数来查询一张临时表,每个参数都要求得到不同的临时表结果集。而往往某些参数并不对应这张临时表中的字段,而是对应与该临时表ID关联的另一张表的字段。
当我写下如下sql语句时,[email protected]
select * from @tb t where t.id in (select id from tb where f = @c)
但如果有
本文来源gao!%daima.com搞$代*!码$网9
@a,@b,@c,[email protected],例如
代码如下:
if @a is not null
begin
–[email protected]
end
if @b is not null
begin
–[email protected]
end
if @c is not null
begin
–[email protected]
end 这样做好像没什么问题,[email protected]@b是一起的,[email protected],@b,@c,@d,@e,@f等等N多种条件组合,[email protected],最后一次性查询
–[email protected]
select * from @tb
[email protected],@[email protected],[email protected],这样就会覆盖刚才的结果。
可以采用“删除不符合条件的记录”的方法来做,[email protected]@a,@b想得到的结果,[email protected]
代码如下:
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