SQL Server クエリで NULL 値を 0 に置き換える
SQL クエリを使用する場合、特定の列で NULL 値が発生することがよくあります。データの処理と分析が複雑になる可能性があります。 SQL Server クエリで NULL 値を 0 などの特定の値に置き換えるには、ISNULL 関数を利用できます。
ISNULL 関数は、NULL の可能性がある列と置換値の 2 つの引数を受け取ります。あなたの場合、最初の 3 つの列 (Succeeded、Failed、Cancelled) の NULL 値を 0 に置き換えたいとします。これを実現する方法は次のとおりです。
SELECT ISNULL(column_name, 0) AS column_alias, ...
たとえば、クエリの最初の 3 列が 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 関数を使用して、最初の 3 つの列に NULL 値が含まれている場合でも、計算に使用されたり、結果に表示されたりする前に、0 に置き換えられるようにします。
以上がSQL Server クエリで NULL 値を 0 に置き換える方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。