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

Développement SQL Server Discussion :

Concaténation de deux champs


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Autodidacte
    Inscrit en
    Février 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Gabon

    Informations professionnelles :
    Activité : Autodidacte

    Informations forums :
    Inscription : Février 2017
    Messages : 15
    Par défaut Concaténation de deux champs
    Bonsoir chers tous

    j'ai un p'tit souci j'arrive pas a concaténer deux champs de type string sur sql server 2008
    quelqu'un pourrait-il m'aider
    je vous laisse mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select matricule,nom +'  '+prenom AS noms from ETUDIANT

  2. #2
    Invité
    Invité(e)
    Par défaut
    Avec autant d'indices, je vais sortir ma boule de cristal...
    Message d'erreur, s'il y en a un... En tout cas, une idée du résultat pourrait aider.
    Types des champs ?
    Est-ce que l'un des deux est NULL ?
    Et y a pas de type string en sql server, jusqu'à nouvel ordre

  3. #3
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Déjà, si on veut quel chose de lisible et sémantiquement correct, on ne concatène pas en faisant des + mais en utilisant la fonction CONCAT.

    Car si demain tu veux concaténer 2 + '5' tu auras 7 au lieu de '25'...

  4. #4
    Membre averti
    Homme Profil pro
    Autodidacte
    Inscrit en
    Février 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Gabon

    Informations professionnelles :
    Activité : Autodidacte

    Informations forums :
    Inscription : Février 2017
    Messages : 15
    Par défaut
    Citation Envoyé par 7gyY9w1ZY6ySRgPeaefZ Voir le message
    Avec autant d'indices, je vais sortir ma boule de cristal...
    Message d'erreur, s'il y en a un... En tout cas, une idée du résultat pourrait aider.
    Types des champs ?
    Est-ce que l'un des deux est NULL ?
    Et y a pas de type string en sql server, jusqu'à nouvel ordre
    il n'y a pas de message d'erreur. En résultat je n'est pas la concaténation du nom et du prénom,seul le nom s'affiche. Pour résoudre ce problème j'ai utilisé la fonction RTRIM

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 010
    Billets dans le blog
    6
    Par défaut
    C'est normal, si vos colonnes (et non"champs" qui est pour laespaysans) sont de type CHAR, les blancs seront conservés.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  6. #6
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Accessoirement, mise à part pour quelques cas précis où le nombre de caractères est à la fois petit et figé, le type CHAR() est à considérer comme déprécié.
    C'est un résidu des bases fichier, et n'a aujourd'hui plus vraiment de raison d'être… Même les performances, qui autrefois était largement meilleures avec ce type, sont discutables en raison de la place perdue (aussi bien sur le disque qu'en mémoire).

    Grossomodo, CHAR n'est à utiliser qu'avec des colonnes types genre "classification ABC" ou éventuellement segmentation comptable (quand on utilise des numéros de comptes de taille fixe).

    Pour stocker des noms et prénoms, c'est une hérésie, et comme votre cas en témoigne, ça apporte bien plus de problèmes qu'autrechose !

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 010
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    Accessoirement, mise à part pour quelques cas précis où le nombre de caractères est à la fois petit et figé, le type CHAR() est à considérer comme déprécié.
    C'est un résidu des bases fichier, et n'a aujourd'hui plus vraiment de raison d'être… Même les performances, qui autrefois était largement meilleures avec ce type, sont discutables en raison de la place perdue (aussi bien sur le disque qu'en mémoire).

    Grossomodo, CHAR n'est à utiliser qu'avec des colonnes types genre "classification ABC" ou éventuellement segmentation comptable (quand on utilise des numéros de comptes de taille fixe).

    Pour stocker des noms et prénoms, c'est une hérésie, et comme votre cas en témoigne, ça apporte bien plus de problèmes qu'autrechose !

    Pas du tout d'accord.

    En effet,...
    • l'usage systématique de colonnes de type VARCHAR conduit immanquablement à de la fragmentation et des lectures très contre performantes parce que faites en "zig-zag".
    • de plus le VARCHAR nécessite 2 octets de plus que le CHAR pour stocker les mêmes informations.
    • même sans fragmentation, la recherche est moins efficace que dans un char.
    • pour couronner le tout, lors de certaines opérations internes (GROUPAGE, DISTINCT, ORDER BY) il faut aligner les VARCHAR pour éviter des lectures en drapeau ce qui pose des problèmes de performances !


    Je ne cesse de montrer dans mes audits ce genre d'horreur qu'est l'utilisation imbécile et systématique du VARCHAR...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  8. #8
    Membre averti
    Homme Profil pro
    Autodidacte
    Inscrit en
    Février 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Gabon

    Informations professionnelles :
    Activité : Autodidacte

    Informations forums :
    Inscription : Février 2017
    Messages : 15
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    Accessoirement, mise à part pour quelques cas précis où le nombre de caractères est à la fois petit et figé, le type CHAR() est à considérer comme déprécié.
    C'est un résidu des bases fichier, et n'a aujourd'hui plus vraiment de raison d'être… Même les performances, qui autrefois était largement meilleures avec ce type, sont discutables en raison de la place perdue (aussi bien sur le disque qu'en mémoire).

    Grossomodo, CHAR n'est à utiliser qu'avec des colonnes types genre "classification ABC" ou éventuellement segmentation comptable (quand on utilise des numéros de comptes de taille fixe).

    Pour stocker des noms et prénoms, c'est une hérésie, et comme votre cas en témoigne, ça apporte bien plus de problèmes qu'autrechose !
    bon j'ai utilisé le type VARCHAR mais désormais je ferai NVARCHAR

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/05/2011, 13h46
  2. concaténation de deux champs dans une liste déroulante
    Par midotoon dans le forum Struts 1
    Réponses: 3
    Dernier message: 02/09/2008, 16h18
  3. Concaténation de deux champs dataTextField d'une listbox
    Par douha dans le forum Windows Forms
    Réponses: 3
    Dernier message: 27/05/2008, 16h30
  4. [C#][2.0]Lier une concaténation de deux champs
    Par Troopers dans le forum Accès aux données
    Réponses: 1
    Dernier message: 04/04/2007, 17h08
  5. Concaténation de deux champs
    Par Ric21 dans le forum Access
    Réponses: 12
    Dernier message: 22/01/2007, 16h31

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