我有一个有效的 SQL 选择,它返回空结果,直到环境中发生特定事务为止。
SQL 本身是否有可用的东西,可以让我返回 0 而不是空数据集?类似于 isNULL('', 0) 功能。显然我尝试过但没有成功。
PS。遗憾的是,我无法访问数据库或环境,我安装了一个正在执行这些查询的代理,因此我只能使用 SQL 来解决这个问题。仅供引用:在不满足“条件”的情况下进行任何选择并运行它(例如,LockCookie='777777777')。如果从未满足该条件,则结果为空。但在某些时候,查询将根据发生的一组操作/任务成功。但我想返回 0,直到该事件发生。
最佳答案
您可以将结果存储在临时表中并检查@@rowcount
。
select ID
into #T
from YourTable
where SomeColumn = @SomeValue
if @@rowcount = 0
select 0 as ID
else
select ID
from #T
drop table #T
如果您希望将其作为一个没有临时表的查询,您可以将您的查询包装在针对仅一行的虚拟表的外部应用
中。
select isnull(T.ID, D.ID) as ID
from (values(0)) as D(ID)
outer apply
(
select ID
from YourTable
where SomeColumn = @SomeValue
) as T
关于SQL Server 空结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12453541/