Remplacement des valeurs NULL par 0 dans les requêtes SQL Server
Lorsque vous travaillez avec des requêtes SQL, il est courant de rencontrer des valeurs NULL dans certaines colonnes, ce qui peut compliquer le traitement et l’analyse des données. Pour remplacer les valeurs NULL par une valeur spécifique, telle que 0, dans une requête SQL Server, vous pouvez utiliser la fonction ISNULL.
La fonction ISNULL prend deux arguments : une colonne potentiellement nulle et une valeur de remplacement. Dans votre cas, vous souhaitez remplacer les valeurs NULL dans les trois premières colonnes (Réussite, Échec, Annulé) par 0. Voici comment y parvenir :
SELECT ISNULL(column_name, 0) AS column_alias, ...
Par exemple, pour remplacer les valeurs NULL dans le trois premières colonnes de votre requête avec 0, vous la modifieriez comme suit :
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
Cette requête modifiée utilise la fonction ISNULL pour garantir que même si les trois premières colonnes contiennent des valeurs NULL, elles seront remplacées par 0 avant d'être utilisées dans les calculs ou affichées dans les résultats.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!