在 SQL Server 查询中用零替换 NULL 值
在 SQL Server 查询中,您可能会遇到以下情况:结果。为了确保准确的数据分析,有必要将这些 NULL 值替换为更有意义的表示形式(例如 0)。
要实现此目的,您可以使用 ISNULL() 函数。 ISNULL() 函数采用两个参数:要检查 NULL 值的表达式和要替换 NULL 值的值。
查询语法:
SELECT ISNULL(expression, 0) FROM table
示例:
在您提供的查询中,您有三列可能包含 NULL 值:成功、失败和取消。要将这些 NULL 值替换为 0,您可以使用 ISNULL() 函数,如下所示:
Select c.rundate, ISNULL( sum(case when c.runstatus = 'Succeeded' then 1 end), 0 ) as Succeeded, ISNULL( sum(case when c.runstatus = 'Failed' then 1 end), 0 ) as Failed, ISNULL( sum(case when c.runstatus = 'Cancelled' then 1 end), 0 ) as Cancelled, count(*) as Totalrun from ( Select a.name, case when b.run_status = 0 Then 'Failed' when b.run_status = 1 Then 'Succeeded' when b.run_status = 2 Then 'Retry' Else 'Cancelled' End as Runstatus, cast(substring(convert(varchar(8), run_date), 1, 4) + '/' + substring(convert(varchar(8), run_date), 5, 2) + '/' + substring(convert(varchar(8), run_date), 7, 2) as Datetime) as RunDate from msdb.dbo.sysjobs as a(nolock) inner join msdb.dbo.sysjobhistory as b(nolock) on a.job_id = b.job_id where a.name = 'AI' and b.step_id = 0 ) as c group by c.rundate
通过使用 ISNULL(),您可以确保成功、失败和取消的结果始终为一个数值,即使原始查询结果中有 NULL 值。
以上是如何在 SQL Server 查询中用零替换 NULL 值?的详细内容。更多信息请关注PHP中文网其他相关文章!