在 SQL Server 查询中将 NULL 值替换为 0
在使用 SQL 查询时,经常会在某些列中遇到 NULL 值,这会使数据处理和分析变得复杂。要在 SQL Server 查询中将 NULL 值替换为特定值(例如 0),可以使用 ISNULL 函数。
ISNULL 函数采用两个参数:可能为空的列和替换值。在您的情况下,您希望将前三列(成功、失败、取消)中的 NULL 值替换为 0。以下是实现此目的的方法:
SELECT ISNULL(column_name, 0) AS column_alias, ...
例如,要替换查询的前三列为 0,您可以按如下方式修改它:
SELECT ISNULL(c.rundate, 0) AS 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 值,它们也会在用于计算或显示在结果中之前被替换为 0。
以上是如何在 SQL Server 查询中将 NULL 值替换为 0?的详细内容。更多信息请关注PHP中文网其他相关文章!