在我的存储过程中,我有一个表变量包含行ID.有两种情况 - 表变量是空的而不是.
declare @IDTable as table
(
number NUMERIC(18,0)
)
Run Code Online (Sandbox Code Playgroud)
在主查询中,我加入了该表:
inner join @IDTable tab on (tab.number = csr.id)
Run Code Online (Sandbox Code Playgroud)
但:
因为我们知道内连接如何工作,我需要我的查询返回一些行:
当@IDTable为空时
要么
仅返回@IDTable中存在的行
我也试过LEFT加入,但它不起作用.任何想法如何解决?
如果`@IDTable'为空,那么你返回哪些行?你只是忽略了加入桌面吗?
我不确定我会得到你想要做的但是这可能会更容易.
if (Select Count(*) From @IDTable) == 0
begin
-- do a SELECT that doesn't join on to the @IDTable
end
else
begin
-- do a SELECT that joins on to @IDTable
end
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1003 次 |
最近记录: |