我有一个有效的SQL select,它返回一个空的结果,直到环境中发生了特定的事务。
SQL本身是否有可用的东西,允许我返回0而不是空数据集?与isNULL('',0)功能类似。显然我试过了,它没有用。
PS。遗憾的是,我无法访问数据库或环境,我安装了正在执行这些查询的代理,所以我只能用SQL来解决这个问题。
仅供参考:选择并运行任何未满足“条件”的地方(例如,LockCookie ='777777777')。如果从未满足该条件,则结果为空。但是在某些时候,查询将基于发生的一组操作/任务而成功。但我想返回0,直到该事件发生。
答案 0 :(得分:3)
您可以将结果存储在临时表中,然后选中@@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
如果您希望将此作为一个没有临时表的查询,则可以在outer apply
中将您的查询包装在一个只有一行的虚拟表中。
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
答案 1 :(得分:0)
alternet方式来自代码,可以检查DataSet的数量。
DsData.Tables[0].Rows.count > 0
答案 2 :(得分:-1)
确保您的查询符合您的条件