Précédent   Forum des professionnels en informatique > Bases de données > Autres SGBD > Informix
Informix Forum d'entraide Informix
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/11/2007, 05h45   #1
Candidat au titre de Membre du Club
 
Inscription : mai 2003
Messages : 70
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 70
Points : 14
Points : 14
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
yvancoyaud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2007, 14h13   #2
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 5 496
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 5 496
Points : 9 677
Points : 9 677
Bonjour,

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

Code :
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 :
1213: Character TO numeric conversion error
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2007, 22h15   #3
Membre Expert
 
Avatar de TheLeadingEdge
 
Inscription : mai 2005
Messages : 1 200
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 1 200
Points : 1 260
Points : 1 260
Bonsoir,
Exemple de ce qui marche avec un moteur IDS 7.31
Code :
1
2
3
4
5
6
7
 
SELECT 	'"' || 'valeur chaine' || '"',
        '"' || TABLE.colonne [1,1] || '"',
        '"' || TABLE.colonne || '"',
        ValeurNumérique
FROM    TABLE
[...]
TheLeadingEdge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2007, 21h17   #4
Membre habitué
 
Inscription : novembre 2007
Messages : 103
Détails du profil
Informations personnelles :
Âge : 64
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2007
Messages : 103
Points : 109
Points : 109
Bonsoir,

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


Code :
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"
 
[...]
IFA2377 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2011, 09h18   #5
Membre régulier
 
Homme Eric Vercelletto
Achitecte Informix SGBD et applications
Inscription : octobre 2010
Messages : 63
Détails du profil
Informations personnelles :
Nom : Homme Eric Vercelletto
Âge : 51
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : Achitecte Informix SGBD et applications
Secteur : Conseil

Informations forums :
Inscription : octobre 2010
Messages : 63
Points : 95
Points : 95
Bonjour,

n'ayant pas la totalité de ta requête, en termes généraux, la syntaxe correcte est celle-ci
Code sql :
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.
begooden-it est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h18.


 
 
 
 
Partenaires

Hébergement Web