1. ホーム
  2. sql

[解決済み] SQLサーバーのクエリでNULLを0に置き換える

2022-03-01 15:35:03

質問

あるクエリーを開発したところ、最初の3つのカラムの結果に NULL . どうすれば 0 ?

  Select c.rundate, 
    sum(case when c.runstatus = 'Succeeded' then 1 end) as Succeeded, 
    sum(case when c.runstatus = 'Failed' then 1 end) as Failed, 
    sum(case when c.runstatus = 'Cancelled' then 1 end) 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(run_date as datetime)
                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

解決方法は?

を置き換える場合 null カラムを他のものに置き換えるには IsNull .

SELECT ISNULL(myColumn, 0 ) FROM myTable

これは、そもそもmyColumnがNULLの場合、0を入れることになります。