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

Comment remplacer les valeurs NULL par zéro dans les requêtes SQL Server ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-31 14:29:10588parcourir

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

Remplacement des valeurs NULL par zéro dans une requête SQL Server

Dans une requête SQL Server, vous pouvez rencontrer des situations où vous avez des valeurs NULL dans votre résultats. Le remplacement de ces valeurs NULL par une représentation plus significative, telle que 0, peut être nécessaire pour garantir une analyse précise des données.

Pour y parvenir, vous pouvez utiliser la fonction ISNULL(). La fonction ISNULL() prend deux paramètres : l'expression avec laquelle vous souhaitez vérifier les valeurs NULL et la valeur par laquelle vous souhaitez remplacer les valeurs NULL.

Syntaxe de la requête :

SELECT ISNULL(expression, 0) FROM table

Exemple :

Dans la requête fournie, vous disposez de trois colonnes pouvant contenir des valeurs NULL : Réussite, échec et annulation. Pour remplacer ces valeurs NULL par 0, vous pouvez utiliser la fonction ISNULL() comme suit :

Select
  c.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

En utilisant ISNULL(), vous pouvez vous assurer que les résultats pour Réussite, Échec et Annulé seront toujours une valeur numérique, même s'il y avait des valeurs NULL dans les résultats de la requête d'origine.

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!

Déclaration:
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