0
我试图忽略#tmp表为空时的位置。当#tmp表为空忽略其中
像:
create table #tmp
(
my_id int
)
create table #tmp2
(
my_name_id int
)
select * from foo
where foo_id in (select my_id from #tmp)
and foo_name_id in (select my_name_id from #tmp2)
而现在的情况。 当我们有一个表格为空时,它不会产生任何结果。
#tmp不是空
#TMP1是空
所以,我在那里用#TMP1应该被忽略。 有什么线索怎么做?
感谢您的回答,将尽快进行检查。 我的参数是逗号分隔,我调入#tmp。 – VoonArt 2013-04-22 07:17:41
在这种情况下,请考虑使用空/空的逗号分隔值检查原始参数并执行其他查询。 a)它将比临时表上的NOT EXISTS更快,并且b)您不会因为第一次调用它时给出的值而陷入糟糕的查询计划(请参阅“参数嗅探”的问题) – LoztInSpace 2013-04-22 12:00:44