Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1314 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  select concaténation

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

select concaténation

n°1966769
puisquetur​epondspas
Posté le 17-02-2010 à 10:50:41  profilanswer
 

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

Citation :


select    
    T2.CD_PAYS || '-' || T2.CD__AN || '-' ||T2.CD__ID  
from ...


 
Comment faire??
 
Merci

mood
Publicité
Posté le 17-02-2010 à 10:50:41  profilanswer
 

n°1966772
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 17-02-2010 à 10:53:14  profilanswer
 

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


---------------
J'ai un string dans l'array (Paris Hilton)
n°1966776
puisquetur​epondspas
Posté le 17-02-2010 à 11:07:04  profilanswer
 

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??

n°1966777
rufo
Pas me confondre avec Lycos!
Posté le 17-02-2010 à 11:07:48  profilanswer
 

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.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1966781
olivthill
Posté le 17-02-2010 à 11:11:53  profilanswer
 

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      
   DECODE(T2.CD_PAYS, null, T2.CD_PAYS, T2.CD_PAYS || '-')
   || DECODE(T2.CD__AN, null, T2.CD__AN, T2.CD__AN || '-')
   || T2.CD__ID
from ...  


Message édité par olivthill le 17-02-2010 à 11:12:36
n°1966933
puisquetur​epondspas
Posté le 17-02-2010 à 15:32:56  profilanswer
 

Merci ça marche les plusieurs decode


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  select concaténation

 

Sujets relatifs
SELECT ... FROM ... NOT IN ?sql-php Concaténation de variables, puis ré-utilisation séparée
Concaténation de cheminsconcaténation recalcitrante
Gestion de Select liésSelect + XMLHttpRequest + variable de session
Select lié en JS+PHP : problème avec IE[JQuery] val() avec select multiple
[pdflib] concatenation de fichiers pdfSQL Serveur 2000: Select avec concaténation !
Plus de sujets relatifs à : select concaténation


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR