SQL Server 空结果

标签 sql sql-server

我有一个有效的 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/

相关文章:

sql - 将列从 varchar 更改为整数并删除非数字字符

sql - 在 Postgresql 中以间隔添加日期作为参数的准备语句

php - 使用 php 和 mysql 按月报告?

java - com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException : error in SQL syntax

sql - 如何在 nvarchar 中正确插入换行符

sql - XML 到 SQL Server 解析问题

php - 在 prestashop DB 的表内复制

sql-server - MSSQL Server 2008 上的远程过程调用失败

SQL 句柄以及如何正确创建一个?

sql - INSERT SELECT 语句和回滚 SQL