2

我有一个有效的 SQL 选择,它返回一个空结果,直到环境中发生特定事务。

SQL 本身是否有可用的东西,可以让我返回 0 而不是空数据集?类似于 isNULL('', 0) 功能。显然我试过了,但没有奏效。

PS。遗憾的是,我无权访问数据库或环境,我安装了一个执行这些查询的代理,所以我只能用 SQL 来解决这个问题。

仅供参考:在不满足“条件”的情况下进行任何选择并运行它(例如 LockCookie='777777777')。如果从未满足该条件,则结果为空。但在某些时候,查询将根据发生的一组操作/任务成功。但我想返回 0,直到该事件发生。

4

3 回答 3

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
于 2012-09-17T05:35:56.500 回答
0

alternet 方式是从代码中,您可以检查 DataSet 的计数。

DsData.Tables[0].Rows.count > 0
于 2012-09-17T05:34:32.077 回答
-1

确保您的查询符合您的条件

于 2012-09-17T05:31:13.977 回答