select concaténation - SQL/NoSQL - Programmation
Marsh Posté le 17-02-2010 à 10:53:14
c'est pas au SGBD de s'occuper de ça... le SGBD te renvoie les données brutes, après c'est au code métier de s'occuper de la mise en forme.
un SGBD n'est pas un tableur
Marsh Posté le 17-02-2010 à 11:07:04
Oui c'est plus logique
Mo code metier
<target name="build_mess_body">
<replaceregexp file="${temp}/${fout}_${dest_id}"
match="^(.*),(.*),(.*),(.*),(.*),(.*),(.*),(.*),(.*),(.*),(.*),(.*),(.*),(.*),.+$"
replace="|{|[ \1 |]|[ \2 |]|[\6 \5|]|[ \8 \9 \10|]|[ \13 (\14)|]|}"
byline="true"
encoding="UTF-8"
/>
Comment faire??
Marsh Posté le 17-02-2010 à 11:07:48
Si t'es sous MySQL, tu peux regarder du côté de concat_ws() mais je suis plutôt d'accord avec Harko. J'y vois quand même une exception : quand t'es dans une appli scriptée (genre en php), certains traitements peuvent être faits plus rapidement par le SGBD (car écrit bien souvent en C) que par le langage scripté. donc, pour des questions de perfs, ça peut avoir du sens de faire plus bosser le SGBD.
Marsh Posté le 17-02-2010 à 11:11:53
La double barre verticale marche avec Oracle, mais il faut utiliser autre chose avec d'autres bases de données.
Donc, supposons que ce soit de l'Oracle. Alors la solution est d'utiliser DECODE. Essayer :
select |
Marsh Posté le 17-02-2010 à 10:50:41
Bonjour
Je veux faire un select, et afficher en concaténant(||) les 3 valeurs si elles ne sont pas vides mais si elles le sont je ne voudrais pas afficher les tiret('-') qui les séparent
select
T2.CD_PAYS || '-' || T2.CD__AN || '-' ||T2.CD__ID
from ...
Comment faire??
Merci