在 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中文網其他相關文章!