|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Futur Membre du Club
![]() Inscription : septembre 2011 Messages : 51 ![]() |
Bonjour,
J'ai un problème de précision causé par la fonction decode sur un test de nullité d'un timestamp. Auriez vous une idée ? Ma requête : Code :
Du coup, j'hésite à faire un script en PL/SQL pour savoir si ma table est null avant le début de la requête. J'hésitais aussi à faire une requête d'insertion conditionnelle mais dans ce cas elle va tester la nullité de chaque entrée, ce qui est inutile. merci d'avance ! |
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 440 ![]() |
Code :
(SELECT MAX (CASE WHEN timestamp IS NULL then systimestamp - 7 else timestamp end) FROM table1);
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
10
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : septembre 2011 Messages : 51 ![]() |
Merci
Je n'avais pas pensé à cette solution ! Est-ce normal la perte de précision avec la fonction décode ? |
|
|
00
|
|
|
#4 | ||||||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 440 ![]() |
en fait, j'ai refais un test : c'est le systimestamp -7 qui transforme en date
le type de retour du decode est déterminé par la première valeur de retour (notion importante à savoir dans le cas des NULL pour une date par exemple) J'ai réussi à le faire marcher avec decode Code :
Code :
Code :
__________________
More Code : More Bugs. Less Code : Less Bugs |
||||||
|
|
10
|
|
|
#5 |
|
Futur Membre du Club
![]() Inscription : septembre 2011 Messages : 51 ![]() |
Merci pour l'explication
|
|
|
00
|
|
|
#6 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 926 ![]() |
donc
|
|
00
|
|
|
#7 |
![]() ![]() |
Et sinon, vous ne connaissez pas les fonctions NVL / COALESCE ?
Code :
SELECT MAX(COALECE(timestamp, systimestamp - 7)) FROM table1
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#8 | |||
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
Citation:
Code :
|
|||
|
|
10
|
|
|
#9 |
![]() ![]() |
En plus c'était écrit juste au-dessus !
__________________
Email : http://scr.im/waldar |
|
10
|
|
|
#10 | ||
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 926 ![]() |
Notez aussi la différence entre coalesce et nvl !
Code :
|
||
|
20
|
|
|
#11 | ||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 440 ![]() |
NVL est du type de la première valeur, COALESCE.. j'en sais rien
Code :
__________________
More Code : More Bugs. Less Code : Less Bugs |
||
|
|
00
|
|
|
#12 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 926 ![]() |
coalesce apparement convertit vers le type à la meilleure précision, mais j'ai demandé à l'auteur de la documentation SQL de me donner des détails... à suive
|
|
00
|
Copyright © 2000-2012 - www.developpez.com