Maison > base de données > tutoriel mysql > Comment remplacer les valeurs NULL par 0 dans les requêtes SQL Server ?

Comment remplacer les valeurs NULL par 0 dans les requêtes SQL Server ?

Patricia Arquette
Libérer: 2025-01-01 03:08:10
original
814 Les gens l'ont consulté

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

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, ...
Copier après la connexion

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal