Ersetzen von NULL-Werten durch 0 in SQL Server-Abfragen
Bei der Arbeit mit SQL-Abfragen kommt es häufig vor, dass in bestimmten Spalten NULL-Werte auftreten kann die Datenverarbeitung und -analyse erschweren. Um NULL-Werte in einer SQL Server-Abfrage durch einen bestimmten Wert, z. B. 0, zu ersetzen, können Sie die ISNULL-Funktion verwenden.
Die ISNULL-Funktion benötigt zwei Argumente: eine potenziell Nullspalte und einen Ersatzwert. In Ihrem Fall möchten Sie NULL-Werte in den ersten drei Spalten (Erfolgreich, Fehlgeschlagen, Abgebrochen) durch 0 ersetzen. So können Sie das erreichen:
SELECT ISNULL(column_name, 0) AS column_alias, ...
Um beispielsweise NULL-Werte in zu ersetzen Wenn Sie die ersten drei Spalten Ihrer Abfrage mit 0 versehen, würden Sie sie wie folgt ändern:
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
Diese geänderte Abfrage verwendet die ISNULL-Funktion, um sicherzustellen, dass auch wenn die Wenn die ersten drei Spalten NULL-Werte enthalten, werden sie durch 0 ersetzt, bevor sie in Berechnungen verwendet oder in den Ergebnissen angezeigt werden.
Das obige ist der detaillierte Inhalt vonWie ersetze ich NULL-Werte in SQL Server-Abfragen durch 0?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!