|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2004 Messages : 21 ![]() |
Bonjour à tous,
J'ai pas mal cherché sur le forum sans succès. Je cherche à concaténer des champs avec une fonction de type sum mais pour les char. Il me semble qu'en SQL/99 on a la fonction LIST qui fait ça ex: Code :
Dois-je créer une fonction UDF pour celà (ou en existe_t'il une qui le fasse). Je ne connais pas du tout les fonctions UDF ou meme les PS, je débute sur Firebird. Merci d'avance |
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Cette fonction n'existe pas en effet sous Interbase/Firebird.
Je ne crois pas qu'on puisse la trouver ni même la programmer dans une UDF. En effet il faudrait non pas faire une simple fonction mais une fonction d'Agregation, et je ne crois pas que l'on puisse le faire dans une UDF. Le SQL 99 est loin d'être implémenté dans tous les SGBR et quand il l'est le plus souvant ce n'est que partiellement. Vous êtes De plus je ne suis pas certain certain que LIST fait parti de la norme SQL99 ? Sinon pour faire ce que vous cherchez à faire j'utilise en général une PS. |
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2004 Messages : 21 ![]() |
Merci de votre réponse,
En effet, il semble bien que cette fonction ne soit pas couramment utilisée (d'ailleurs après plusieurs recherches sur Google je n'ai pas trouver un seul SGBD qui l'utilise). Bon, je crois bien que ca va être le moment de me pencher sur les PS : Je vais voir si ce n'est pas trop chaud pour mon petit niveau |
|
|
00
|
|
|
#4 | ||||
|
Membre éclairé
![]() Inscription : décembre 2004 Messages : 379 ![]() |
c'est possible de construire une procédure stockée qui réponde à cette requête: SELECT * FROM LISTPAYS( 2 );
==> "2;3;5;10" Le code de cette procédure, bien sûr, il faudra ajuster le nom de la table et des champs... Code :
Code :
attention que si il y a trop de réponses, la variable de résultat "sautera" faute d'espace. avec firebird, quelques procédures stockées et des udf, rien n'est impossible! |
||||
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2004 Messages : 21 ![]() |
Merci pour cette solution. Je pense avoir plus ou moins compris le code. Ca a l'air super interressant ça.
En attendant j'avais gardé une solution pas très optimisée mais là ca me simplifiera beaucoup la tache. Merci beaucoup. Je me mets sérieusement aux PS dès que possible et ensuite j'attaquerai les UDF. |
|
|
00
|
|
|
#6 |
|
Membre éclairé
![]() Inscription : décembre 2004 Messages : 379 ![]() |
a propos d'udf, j'en ai des kilomètres que je serais heureux de partager.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com