Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1822 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL] Comment dire "si null, retourne 0" dans un select ??

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SQL] Comment dire "si null, retourne 0" dans un select ??

n°297795
ptibonom
Posté le 31-01-2003 à 11:41:38  profilanswer
 

:hello: ,
 
disons que j'ai la requête d'insertion suivante. La clé primaire de la table est une référence (champs REFVERS0) à incrémenter simplement, sachant que les normes de la société ne permette pas de laisser Oracle gérer lui même les références.
 
EF2MVER5.INSERT=INSERT INTO EF2VER ( REFVERS0, CDAPPLI0, CDPROIDF, NUMVERS0, DTCREVER, HRCREVER, NBTENRVE, NBCHARVE, NBENRDER, DTDERCHG, HRDERCHG, DTEXTVER, HREXTVER ) VALUES ((SELECT MAX(REFVERS0)FROM VEF2VER0)+1 , (SELECT EF2PRO.CDAPPLI0 FROM EF2PRO WHERE EF2PRO.CDPROIDF = ?) , ?, ?, ?, ?, ?, ?, ?, ?, ? , ?, ? )
 
Vous remarquerez le select dynamique qui va cherchez la plus grande référence existante. Mon problème est qu'en cas de table vide, ce select retourne null et que null + 1, ça fait tjrs null et ça plante.
Bref ma question : qqn sait-il comment coder dans le select "si null, retourne 0" ? ça doit être tout con mais on est vendredi et je coince ...

mood
Publicité
Posté le 31-01-2003 à 11:41:38  profilanswer
 

n°297821
vttman2
Je suis Open ...
Posté le 31-01-2003 à 12:29:25  profilanswer
 

Essaye ça !
decode (Monselectmax,NULL,0,Monselectmax)
 :pt1cable:

n°297822
lorill
Posté le 31-01-2003 à 12:30:07  profilanswer
 

nvl...

n°298036
ptibonom
Posté le 31-01-2003 à 15:48:44  profilanswer
 

vttman2 a écrit :

Essaye ça !
decode (Monselectmax,NULL,0,Monselectmax)
 :pt1cable:  


 
j'essaie lundi ... merci.

n°298039
lorill
Posté le 31-01-2003 à 15:50:15  profilanswer
 

ptibonom a écrit :


j'essaie lundi ... merci.


[:totoz] utilise pas un décode pour ca !
 
NVL(champs, valeurSiNull)

n°298040
tomlameche
Et pourquoi pas ?
Posté le 31-01-2003 à 15:50:31  profilanswer
 

ptibonom a écrit :


 
j'essaie lundi ... merci.


Ah voui, mais decode, c'est sous Oracle, et ça marche pas par exemple sous DB2. Mais tu as des équivalent avec des CASE( ... ) ou avec des WHEN ... THEN ... ELSE ..., ça dépend du SGBD.


Message édité par tomlameche le 31-01-2003 à 15:50:56

---------------
Gérez votre collection de BD en ligne ! ---- Electro-jazzy song ---- Dazie Mae - jazzy/bluesy/cabaret et plus si affinité
n°299808
ptibonom
Posté le 03-02-2003 à 09:23:06  profilanswer
 

:hello: ,
 
merci pour toutes les réponses. on est sous oracle donc le decode fonctionnerait. mno collègue a déjà  testé ça SELECT NVL(MAX(REFVERS0),0) et ça a l'air de convenir ...
 
 :jap:

n°299831
souk
Tourist
Posté le 03-02-2003 à 10:19:49  profilanswer
 

euh...c surement bete, mais y aurait pas moyen de definir 0 comme valeur par defaut ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL] Comment dire "si null, retourne 0" dans un select ??

 

Sujets relatifs
[ASP]Explication d'une requete SQL en ASPAchat livres SQL et UML
[SQL] La commande UNION... Pb :([SQL] comment on fait des requetes du type coli = coli+5
cherche à me connecter à une base SQL Server depuis VB ....galère!!!!faire prendre une valeur a une variable dans une requete SQL
[PHP&SQL] Affichage confondu des derniers infos de 2 TablesLocalisation de MS SQL Server? (problèmes d'accents) Résolu!
[PHP] Qu'est que cela veut il dire l'operateu-> ? Est comme en C/C++?Pb classe de connexion et mysql_select_db
Plus de sujets relatifs à : [SQL] Comment dire "si null, retourne 0" dans un select ??


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR