|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : février 2011 Messages : 14 ![]() |
Bonjour,
Je souhaite faire un select sur 3 colonnes contenant des donnees numeriques et que les donnees s'affichent sur 1 seul colonne en fusionnant les 3... (ex. ci dessous) J'ai essayé avec Concat mais cela ne semble pas fonctionner... de plus il semble qu'avec db2 c'est limité à 2 colonnes...? Est ce que c'est la bonne fonction ou voyez vous d'autres solutions ? quel serait le script ? Exemple : col1 col2 col3 1234 - - - 4756 - - - 6895 doit afficher : col1 1234 4756 6895 En vous remerciant pour votre aide ! |
|
|
00
|
|
|
#2 | ||
|
Membre actif
![]() Inscription : juin 2008 Messages : 146 ![]() |
Bonsoir,
Ton souhait n'est pas vraiment de fusionner les 3 colonnes mais de toutes les afficher dans une seule colonne résultat. Si tu souhaitais concaténer, tu pourrais écrire Code :
SELECT DIGITS(COL1)!!DIGITS(COL2)!!DIGITS(COL3) FROM TAB Ceci dit, par rapport à l'exemple cité dans ta demande, en admettant que les - signifient valeur NULL et en admettant que tu n'ais toujours qu'une seule des 3 colonnes renseignées, alors tu peux écrire Code :
SELECT COALESCE(COL1, COL2, COL3) FROM TAB Problème : si COL1 et COL2 sont toutes les 2 renseignées, alors DB2 renverra COL1 sans tenir compte de COL2. Si les - ne signifie pas NULL, mais 0 par exemple, tu peux écrire un CASE Code :
Bonne utilisation. |
||
|
|
00
|
|
|
#3 |
|
Membre chevronné
![]() Administrateur de base de données Inscription : octobre 2006 Messages : 503 ![]() |
Bonjour
Pour completer la réponse de pdz74, CONCAT fonctionne bien avec 2 colonnes, mais rien ne t'empeche d'utiliser plusieurs CONCAT ex: truc utilisable avec la fonction CONCAT, mais ca rend très vite la requête illisible. Si je dois travailler sur plusieurs machines, j'évite d'utiliser le ! comme opérateur de concaténation. ! n'est pas toujours reconnu (problème de CCID code-page). |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : février 2011 Messages : 14 ![]() |
Bonjour PDZ74 et bernard59139,
Je vous remercie pour votre reponse rapide ! J'ai testé ce matin le script suivant : SELECT COALESCE(COL1, COL2, COL3) FROM TAB Et cela affiche parfaitement ce que je souhaitais avoir. J'ai inclus cette partie de codde dans le script entier et cela fonctionne parfaitement ! Donc merci à bernard59139 d'avoir contribué à ce post et merci infiniment PDZ74 pour la reponse ultra rapide (à 23h30 )! et tres detaillée qui a resolu mon probleme ! ![]() Bonne journée à vous, |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com