IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Informix Discussion :

Rubriques concaténées dans un select


Sujet :

Informix

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 176
    Points : 75
    Points
    75
    Par défaut Rubriques concaténées dans un select
    Bonjour,
    Je fais mes premiers pas dans INFORMIX en reprenant un développement existant déjà pour MSSQL. J'ai des requètes du genre
    SELECT Rub1,Rub3+Rub4,Rub6 FROM.... qui doivent, dans cet exemple retourner 3 colonnes. Mais INFORMIX n'accepte pas Rub3+Rub4 ....
    J'ai essayé Rub3||Rub4 mais ça ne marche pas non plus ...
    (Je précise que les rubriques sont des rubriques chaines de caractères)

    Dans le même ordre d'idée j'ai aussi des WHERE Rub1+Rub2='ADHTRD' mais je pense que la solution, si elle existe est la même.

    Quelqu'un a-t-il une idée sur la syntaxe a utiliser ???

    Merci de vos réponses.
    YC

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Bonjour,

    Je n'ai aucun problème à faire ce que tu dis, avec Informix 9.40 FC7 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    $> echo "select zone, zone+prefix, prefix  from table1 where zone+prefix=5" | dbaccess mabase
     
    Database selected.
     
     
     
           zone  (expression)      prefix
     
              2             5           3
             -2             5           7
             -2             5           7
             -2             5           7
             -2             5           7
             -2             5           7
              2             5           3
              2             5           3
             -2             5           7
             -2             5           7
             -2             5           7
             -2             5           7
             -2             5           7
             -2             5           7
             -2             5           7
             -2             5           7
             -2             5           7
     
    17 row(s) retrieved.
     
     
     
    Database closed.
    Quelle version d'Informix as-tu ? Sur quel système ?
    Peux-tu coller ici la requête exacte que tu cherches à implémenter ?

    PS : il est logique que si l'un de tes deux membres de l'expression est une chaine de caractère, l'opérateur + ne s'applique pas. Dans ce cas, tu devrais avoir l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1213: Character to numeric conversion error
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  3. #3
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Bonsoir,
    Exemple de ce qui marche avec un moteur IDS 7.31
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    select 	'"' || 'valeur chaine' || '"',
            '"' || table.colonne [1,1] || '"',
            '"' || table.colonne || '"',
            ValeurNumérique
    from    table
    [...]

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Je tenterais bien ce qui suit... Mais je n'ai plus la possibilité de tester.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT TABLE.prenom CLIPPED || " " || TABLE.nom CLIPPED   TABLE_prenom_nom,
           [...]
     
    FROM   TABLE
     
    WHERE  TABLE_prenom_nom = "Prénom NOM"
     
    [...]

  5. #5
    Membre habitué
    Homme Profil pro
    Achitecte Informix SGBD et applications - IBM Champion - Data Management - Board of Directors IIUG
    Inscrit en
    Octobre 2010
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Achitecte Informix SGBD et applications - IBM Champion - Data Management - Board of Directors IIUG
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 105
    Points : 162
    Points
    162
    Par défaut
    Bonjour,

    n'ayant pas la totalité de ta requête, en termes généraux, la syntaxe correcte est celle-ci
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Rub1,Rub3||Rub4,Rub6 
    FROM table

    Cette sytaxe est supportée depuis Informix OnLine 5.0 soit 1992 à peu près.
    || sert à concaténer 2 colonnes de type char et dérivés, ça marche aussi avec des numériques.
    + sert, comme son nom l'indique, à faire des additions

    IFA2377: concaténer par || deux colonnes dans une clause where n'est pas supporté, il n'y a aucune raison d'utiliser ce type de syntaxe, qui ne ferait que te priver ( si ça marchait ), de l'utilisation d'un index sur l'une et/ou l'autre colonne, et donc de rallonger conséquemment ton temps de réponse.

Discussions similaires

  1. [2012] Concaténation dans un select
    Par xehyan dans le forum Développement
    Réponses: 10
    Dernier message: 03/02/2015, 10h19
  2. Organisation dans rubriques dans un select
    Par maryooman dans le forum Langage
    Réponses: 2
    Dernier message: 24/01/2010, 15h09
  3. Réponses: 1
    Dernier message: 12/06/2007, 21h38
  4. Concaténation de 2 select en 1 seul
    Par Fleep dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/08/2003, 11h38
  5. [Sybase] Select dans une select loop en C
    Par Claudio dans le forum Sybase
    Réponses: 2
    Dernier message: 29/04/2003, 18h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo