首頁 > 資料庫 > mysql教程 > 如何在 SQL Server 查詢中用零取代 NULL 值?

如何在 SQL Server 查詢中用零取代 NULL 值?

Mary-Kate Olsen
發布: 2024-12-31 14:29:10
原創
590 人瀏覽過

How to Replace NULL Values with Zero in SQL Server Queries?

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板