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

Dotnet Discussion :

CONCAT en T-SQL [Débutant]


Sujet :

Dotnet

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Août 2009
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Santé

    Informations forums :
    Inscription : Août 2009
    Messages : 78
    Points : 68
    Points
    68
    Par défaut CONCAT en T-SQL
    Bonjour à tous,

    j'ai une petite question concernant l'assemblage de 2 colonnes FIRST_NAME et NAME en une 3e colonne ENTIRE_NAME dans une table réalisée avec Visual Studio 2015 Community.

    Je m'explique. J'ai une table :

    Nom : TB_users.png
Affichages : 146
Taille : 6,7 Ko


    et le code qui va avec :

    Code T-SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    CREATE TABLE [dbo].[TB_users] (
        [PK_USER]    INT           IDENTITY (1, 1) NOT NULL,
        [FIRST_NAME] NVARCHAR (50) NOT NULL,
        [NAME]       NVARCHAR (50) NOT NULL,
        [ENTIRE_NAME] NVARCHAR (100) NULL,
        [SERVICE]    NVARCHAR (50) NULL,
        [EMAIL]      NVARCHAR (50) NULL,
        [PHONE]      NVARCHAR (50) NULL,
        [FK_GRADE]   INT           NOT NULL,
        [PASSWORD]   NVARCHAR (50) NOT NULL,
        PRIMARY KEY CLUSTERED ([PK_USER] ASC),
        CONSTRAINT [FK_TB_users_To_TB_grades] FOREIGN KEY ([FK_GRADE]) REFERENCES [dbo].[TB_grades] ([PK_GRADE])
        SELECT [FIRST_NAME], [NAME], CONCAT([FIRST_NAME], ' ', [NAME]) AS [ENTIRE_NAME] FROM TB_users
    );

    Le problème est sur ma dernière ligne. Je vous laisse juger. Le SELECT ne passe pas.

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Pourquoi est-ce que tu as inclu ton SELECT dans l'instruction CREATE ?

    Ce sont 2 instructions distinctes :
    - Le CREATE sert juste à créer la table, c'est ce qu'on appelle du DDL (Data Definition Language)
    - Le SELECT permet de requêter la table, donc elle doit d'abord exister avant de pouvoir faire un select, c'est ce qu'on appelle du DML (Data Manipulation Language)

    Et bien entendu, le SELECT ne doit pas faire partie du CREATE
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Août 2009
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Santé

    Informations forums :
    Inscription : Août 2009
    Messages : 78
    Points : 68
    Points
    68
    Par défaut
    Bonjour,
    euh, oui, en effet, ça c'est une erreur idiote de ma part.

    Alors j'ai fais ça :

    Code T-SQL : 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
    CREATE TABLE [dbo].[TB_users] (
        [PK_USER]    INT           IDENTITY (1, 1) NOT NULL,
        [FIRST_NAME] NVARCHAR (50) NOT NULL,
        [NAME]       NVARCHAR (50) NOT NULL,
        [ENTIRE_NAME] NVARCHAR(100) NULL, 
        [SERVICE]    NVARCHAR (50) NULL,
        [EMAIL]      NVARCHAR (50) NULL,
        [PHONE]      NVARCHAR (50) NULL,
        [FK_GRADE]   INT           NULL,
        [PASSWORD]   NVARCHAR (50) NOT NULL,
        PRIMARY KEY CLUSTERED ([PK_USER] ASC),
        CONSTRAINT [FK_TB_users_To_TB_grades] FOREIGN KEY ([FK_GRADE]) REFERENCES [dbo].[TB_grades] ([PK_GRADE])
    )
     
    GO
     
    SELECT [PK_USER], CONCAT([FIRST_NAME], ' ', [NAME]) AS [ENTIRE_NAME];

    et j'ai une erreur avec le SELECT.

    Mais je me posais la question si je ne pouvais pas créer mon CONCAT en même temps que la création de la table, par exemple avec un truc du genre : (dans mon CREATE TABLE bien sûr)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [ENTIRE_NAME] NVARCHAR(100) NULL CONCAT([FIRST_NAME], ' ', [NAME],
    (j'ai peur de trop réfléchir en mode MS Access...)
    merci d'avance.

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Tu peux créer une vue, ca permet de créer des colonnes calculées comme ce que tu cherches à faire.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  5. #5
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Août 2009
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Santé

    Informations forums :
    Inscription : Août 2009
    Messages : 78
    Points : 68
    Points
    68
    Par défaut
    En fait, au niveau de mon formulaire de remplisage de ma table, je stock dans une variable la concaténation du prénom et du nom, et je l'ajoute aux autres données pour la création de l'enregistrement dans ma table. Tout bète...


    Merci, a+

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

Discussions similaires

  1. Concat dans requete sql pour sql server
    Par psycho_xn dans le forum Langage SQL
    Réponses: 3
    Dernier message: 18/09/2015, 17h10
  2. [2.6.0] SQL : CONCAT et retour chariot
    Par David55 dans le forum BIRT
    Réponses: 2
    Dernier message: 13/08/2010, 10h08
  3. [SQL] Requête SQL avec || à la place de CONCAT
    Par Dsphinx dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 13/07/2007, 15h56
  4. CONCAT() dans SQL - ralentissement
    Par Dsphinx dans le forum Langage SQL
    Réponses: 7
    Dernier message: 13/07/2007, 15h00
  5. [Oracle 9] concat et requêtes SQL
    Par marti dans le forum Langage SQL
    Réponses: 6
    Dernier message: 19/06/2006, 20h38

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