2010-12-13 3 views
0

j'ai essayé de le faire,corverting null à 0

(cas où (PREPAYMENT_AMT! = Null) puis 0 autre (PREPAYMENT_AMT) FIN)

pourquoi il est encore apper null ???

+0

im stuck depuis 3 semaines déjà .... – Chi

Répondre

0

Je sais que dans SQL, null n'est égal à rien parce que c'est la valeur inconnue. Comment un inconnu peut-il être égal à un autre? Cela n'a aucun sens. Il y a des opérateurs spéciaux pour traiter null.

(case when (PREPAYMENT_AMT IS NULL) then 0 else (PREPAYMENT_AMT) END) 

Il existe également des fonctions dans la plupart des langages SQL pour faire ce que vous voulez. Dans MS SQL Server, ISNULL(PREPAYMENT_AMT, 0) fera ce que vous voulez. En MySQL, c'est COALESCE(PREPAYMENT_AMT, 0).

Vous devriez savoir que je ne sais pas ce qu'est ireport, alors vérifiez vos docs pour savoir comment gérer les valeurs nulles. Quelqu'un peut-il me dire pourquoi la variable apparaît nulle dans la bande de groupe?

+0

merci de m'avoir aidé ... merci aussi à Raskolnikov pour le partage ... – Chi

+0

(cas où (PREPAYMENT_AMT EST NULL) puis 0 sinon (PREPAYMENT_AMT) END) conversion avec succès null à 0 dans iReport – Chi

0

Parce que vous le modifiez à 0 si ce n'est pas null. Vous avez besoin de AMT == null

+0

j'ai essayé (cas où (PREPAYMENT_AMT = null) puis 0 sinon (PREPAYMENT_AMT) END) mais toujours il apparaît nul – Chi

+0

Le simple est égal à "=" assigne une variable. Pour vérifier l'égalité, vous avez besoin du double égal à "==". C'est une erreur commune pour les débutants, et nous en avons tous fait une. – Raskolnikov

+0

ive a essayé "==" plus tôt mais il y a une erreur "expression manquante" – Chi

Questions connexes