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 :

Syntaxe SELECT avec tabulation entre les champs


Sujet :

Développement SQL Server

  1. #1
    Membre habitué Avatar de obitskater
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2008
    Messages : 163
    Points : 132
    Points
    132
    Par défaut Syntaxe SELECT avec tabulation entre les champs
    Bonjour à tous!

    J'ai une requête qui retourne 2 champs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select champ1, champ2 FROM MATABLE
    champ1 est de type char(40)
    champ1 est de type char(6)

    je souhaiterai qu'à l'affichage du résultat j'ai un rendu aligné du type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    abc                zy
    abcde              zyw
    abcd               zy
    car pour le moment j'ai le rendu brute:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    abc         zy
    abcde               zyw
    abcd            zy
    Si vous pouvez m'aider à me rafraîchir la mémoire sur le mot clé pour mettre des tabulations dans la clause SELECT, ce serait top

  2. #2
    Membre actif
    Inscrit en
    Février 2009
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 224
    Points : 269
    Points
    269
    Par défaut
    Bonjour,
    Le SQL ne permet pas d'inclure des éléments de présentation, il s'agit d'un langage de manipulation de données pas de gestion des entrées/sorties.
    Toutefois, si vous effectuez vos requetes depuis SQL Server Management Studio, demander l'affichage du résultat sous forme de grille (Menu Requête - Résulat dans - Résultats dans des grilles ou bien le racourci clavier Ctrl+D)

  3. #3
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Bonjour,

    Si vous voulez aligner votre résultat je pense que le plus simple est de supprimer tous les espaces de début et au pire rajouter des espaces au résultat aligné.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    DECLARE @t TABLE 
    (
     colonne1 CHAR(6),
     colonne2 CHAR(40)
    );
     
    INSERT INTO @t VALUES('abc','     zy')
    INSERT INTO @t VALUES('abcde','             zyw')
    INSERT INTO @t VALUES('abcd','         zy');
     
    SELECT 
    	colonne1,
    	SPACE(10) + (LTRIM(colonne2)) AS colonne2
    FROM @t;
    Mais je suis d'accord avec jero44, ce que vous voulez faire est de la cosmétique ... ce n'est pas au moteur SQL à gérer cela normalement.

    ++

  4. #4
    Membre habitué Avatar de obitskater
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2008
    Messages : 163
    Points : 132
    Points
    132
    Par défaut
    Merci pour vos réponses, j'ai trouvé une solution sur la msdn : la combinaison de REPLICATE et DATALENGTH

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT rtrim(champ1)
              +REPLICATE(' ', 20 - DATALENGTH(rtrim(champ1)))
              + champ2 
    FROM MATABLE

  5. #5
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    j'ai trouvé une solution sur la msdn : la combinaison de REPLICATE et DATALENGTH
    Certes, mais vous avez oublié ce que vous a dit Jero44 : le SQL n'est pas fait pour présenter des données : c'est à votre application de les présenter comme cela.

    @++

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

Discussions similaires

  1. [WD18] Basculer entre les Champs de saisie avec la touche entrée
    Par charifclub dans le forum WinDev
    Réponses: 5
    Dernier message: 07/10/2013, 16h32
  2. basculer entre les champs de texte avec les flèches du clavier
    Par limy9 dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 24/01/2011, 16h49
  3. Réponses: 2
    Dernier message: 05/02/2008, 12h14
  4. Réponses: 3
    Dernier message: 04/10/2006, 23h15
  5. Eviter les doublons entre les champs
    Par Waluigi dans le forum Access
    Réponses: 1
    Dernier message: 15/05/2006, 12h11

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