Les trucs & astuces de la semaine du 18 au 24 Juillet 2005: Limiter une instruction Select pour qu’elle ne traite que n lignes, Fichiers d'horodatage, Fonctions Coalesce et Value, Qu’est-ce que HATS LE ?.
Fonctions Coalesce et Value
L’une des joies du travail en freelance est qu’il vous conduit à
traiter des programmes en tous genres écrits sur toutes
sortes de bases de données. Un programme qui m’était échu
et que j’étais en train de déboguer, lisait un fichier de commandes
traitées, en recherchant le numéro de commande le
plus haut (qui pouvait se trouver dans l’un quelconque de
deux champs) pour obtenir le point de départ des commandes
non traitées. (Je précise que je n’écrirais pas ce genre
de choses !)
Pour faire cela, le programme appliquait une logique tarabiscotée
qui d’ailleurs ne fonctionnait pas. Je l’ai remplacé
par l’instruction SQL suivante. A noter que les fonctions
Coalesce et Value sont équivalentes. Je les utilise toutes les
deux ici pour illustrer leur usage :
c/exec sql c+ Declare ordmax Cursor for c+ Select c+ coalesce(max(Pord15),' '), c+ from c+ Xcp15 c+ Where c+ Cono15 = :L#Cono c+ For fetch only c/end-exec
La fonction max pour les deux champs (Pord15 et
Sord15) renvoie la valeur maximale trouvée dans le fichier –
qui est simple et directe et qui a bien marché sur la base de
données de test. Mais ce programme était sur le point d’entrer
en production sur une nouvelle base de données, et un
fichier vide aurait renvoyé null et la logique aurait alors
échoué. Les fonctions coalesce/value accompagnent les
champs de la liste entre les parenthèses et renvoient la première
valeur non nulle. Ainsi, pour une nouvelle base de données,
des blancs sont renvoyés ; sinon, on obtient le numéro
de commande le plus élevé.
J’ai rarement vu utiliser ces fonctions et beaucoup ignorent
que même AS/400 Query a la même fonctionnalité en
utilisant value.
Téléchargez cette ressource
Guide inmac wstore pour l’équipement IT de l’entreprise
Découvrez les dernières tendances et solutions IT autour des univers de Poste de travail, Affichage et Collaboration, Impression et Infrastructure, et notre dossier Green IT sur les actions engagés par inmac wstore pour réduire son impact environnemental