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

Langage SQL Discussion :

Concaténation de champs de type string et integer ou long


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 62
    Par défaut Concaténation de champs de type string et integer ou long
    Bonjour la communauté
    Je voudrais faire une requête en concaténant des champs de type string et des champs de type integer ou long. J'utilise DB2 comme SGBD
    J'ai codeEmp de type string , numero de type integer et codService de type string
    la requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select (codeEmp|| ' '||numero|| ' '||codService ) as identifiant from employe
    en faisant cette requête j'ai comme erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Error: SQL problems:DB2 SQL error: SQLCODE: -440, SQLSLATE: 42884, SQLERRMC: ||; FUNCTION
    J'ai modifié la requete par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select (codeEmp|| ' '||char(numero)|| ' '||codService ) as identifiant from employe
    Maintenant j'ai remarqué que la partie numero complète par des espaces blancs si toute la longueur du champs n'est pas renseigné.

    Comment éliminer ses espaces blancs ou bien avez vous une autre méthode
    Merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    Bonjour,

    selon votre version de db2 ceci peut ne pas marcher, en fait il faudrait caster votre integer en varchar :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select CAST(mon_integer as VARCHAR)
    from ma_table
    Je crosi qu'il y a aussi une fonction du type "VARCHAR(mon_integer)" qui existe.


    Si l'une ou l'autre de ces deux solutions ne fonctionnent pas il vous restera TRIM :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select trim(char(mon_integer))
    from ma-table

  3. #3
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 62
    Par défaut
    Bonjour merci de votre réponse mais aucun des 3 solutions ne marchent

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    Dans ce cas expliquez, avec un exemple, ce que veut dire cette phrase :
    Maintenant j'ai remarqué que la partie numero complète par des espaces blancs si toute la longueur du champs n'est pas renseigné.

  5. #5
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 815
    Billets dans le blog
    14
    Par défaut
    Dans le premier message de scrutin, le message d'erreur n'apparaît pas en entier.
    Ne serait-ce pas un problème d'opérateur || qui ne serait peut-être pas reconnu par DB2 ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  6. #6
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 62
    Par défaut
    si nous voulons creer la table avec codeEmp varchar(20), numero int(5) codService(10).
    si nous avons comme données cdeEmp='ING' numero=23 codeService='INF'
    avec la requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT (codeEmp|| ' '||char(numero)|| ' '||codService ) AS identifiant FROM employe
    nus avons comme resulat identifiant=ING23 INF

    je veux éliminer ces espaces blanc pour avoir 'ING23INF'
    merci

Discussions similaires

  1. formater un champ de type string (Displayformat string)
    Par algeriano.29 dans le forum Delphi
    Réponses: 0
    Dernier message: 10/05/2015, 11h39
  2. [AC-2007] Champ de type String en date
    Par Abed_H dans le forum Requêtes et SQL.
    Réponses: 14
    Dernier message: 20/02/2010, 23h27
  3. Type de variable - Integer ou Long
    Par Domi2 dans le forum VBA Access
    Réponses: 2
    Dernier message: 06/02/2008, 08h59
  4. Convertir un type String en Integer VB-A
    Par sebeni dans le forum Général VBA
    Réponses: 1
    Dernier message: 09/05/2007, 16h18
  5. [CR] les champs de type string
    Par yvescollet dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 05/10/2004, 16h29

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