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 en SQL


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Inscrit en
    Août 2006
    Messages
    307
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Août 2006
    Messages : 307
    Points : 114
    Points
    114
    Par défaut Concaténation en SQL
    Salut,

    Je travaille sur une base SQL Server a partir de MS Query (par lien ODBC).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT 
    c.nom + ' ' + m.mail,  
    c.adresse, 
    c.code_postal, 
    c.ville
    FROM CLIENT c, MAIL m
    WHERE 
    c.ClientNo = m.clientNo
    Voici une requete toute simple. La concaténation fonctionne mais lorsque le mail a une valeur null (autorisé dans ma base), le resultat de la requête me donne un resultat null pour le 1er critère.

    Est ce normal ?

    Merci d'avance..

    Mario

  2. #2
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    utilisez la fonction COALESCE pour remplacer NULL par ''

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT 
    c.nom + ' ' + COALESCE(m.mail,''),
    Bon courage

  3. #3
    Membre régulier
    Inscrit en
    Août 2006
    Messages
    307
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Août 2006
    Messages : 307
    Points : 114
    Points
    114
    Par défaut
    En effet, je n'y ai meme pas pensé ...



    MERCI !

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 115
    Points : 28 493
    Points
    28 493
    Par défaut
    Et utilisez des jointures normalisées...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT ...
    FROM client c
     INNER JOIN mail m
     ON c.clientno = m.clientno

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Concaténer résultats SQL.
    Par coson54 dans le forum Zend_Db
    Réponses: 4
    Dernier message: 20/12/2011, 14h01
  2. concaténation dans sql
    Par zemblamoh dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 04/06/2009, 18h47
  3. concaténation avec SQL dans une BD access
    Par jouidos dans le forum Accès aux données
    Réponses: 2
    Dernier message: 28/02/2007, 20h18
  4. [Visual Web] [SJSC] Concaténation dans requête SQL
    Par Original Prankster dans le forum NetBeans
    Réponses: 22
    Dernier message: 15/08/2005, 15h50
  5. [Transact SQL] concaténer jour+heure
    Par tiboleo dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 02/12/2004, 14h12

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