none
Ajout d'une Colonne calculée SQL SERVER Division /0 RRS feed

  • Question

  • Bonjour tout le monde,

    qui peut m'aider à trouver la bonne requête SQL SERVER pour ajouter une colonne calculée, ma formule est la suivante 

    ALTER TABLE dbo.stock ADD T1 AS ((note1 + Note2 + Note3) / (Note4 + Note5 + Note6)) PERSISTED;

    Le problème que j'ai, c'est que je peux avoir des valeurs NULL exemple de résultat = (0 / 0)

    et le massage que j'ai en exécutant la requête :

    Msg 8134, Level 16, State 1, Line 1
    Divide by zero error encountered.
    The statement has been terminated.

    Merci pour votre aide (:
    mercredi 7 août 2019 11:07

Toutes les réponses

  • Bonsoir,

    https://dba.stackexchange.com/questions/125363/avoiding-a-divide-by-zero-error-in-a-computed-column

    Plusieurs types de solutions, par exemple :

    ALTER TABLE dbo.stock ADD [Result] AS case when note4 + Note5 + Note6=0then 0 else ( note1 + Note2 + Note3/ note4 + Note5 + Note6) end ;

    A bientôt


    Thierry DEMAN-BARCELO. Offce Apps&Services MVP. MCSE:Messaging 2016,MCSE:Server Infrastructure 2016(87 MCPs). MCSA Office 365,Microsoft 365 Certified: Messaging Administrator Associate,Modern Desktop Administrator Associate https://base.faqexchange.info

    mercredi 7 août 2019 16:35
  • ALTER TABLE dbo.stock ADD T1 AS ((note1 + Note2 + Note3) / (Note4 + Note5 + Note6)) PERSISTED;
    Le problème que j'ai, c'est que je peux avoir des valeurs NULL exemple de résultat = (0 / 0)

    ALTER TABLE dbo.stock ADD T1 AS ( (coalesce (note1, 0) + coalesce (Note2, 0) + coalesce (Note3, 0))
                                                           /
                                                          nullif ((coalesce (Note4, 0) + coalesce (Note5, 0) + coalesce (Note6, 0)), 0) ) PERSISTED;

     

    José Diz     Belo Horizonte, MG - Brasil     [T-SQL performance tuning: Porto SQL]


    Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    • Modifié José Diz dimanche 1 septembre 2019 11:31
    dimanche 1 septembre 2019 00:38