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

MS SQL Server Discussion :

Requete SQL pour reformater un boolean


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 33
    Par défaut Requete SQL pour reformater un boolean
    Bonjour,

    je souhaitais savoir savoir si il était possible avec une requete SQL server qui correspondrait à un if:

    select format(etat) from basetest

    où etat est un booleen et par format je veux obtenir "content" à la place de "true" et "pas content" pour false.

    est-ce possible ?

    merci d'avance

    Arnaud

  2. #2
    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 : 44
    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
    Par défaut
    Bonjour,

    Essayez :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT CASE etat
    			WHEN 0 THEN 'Pas content'
    			WHEN 1 THEN 'Content'
    		END
    FROM basetest
    Néanmoins, SQL n'étant pas un langage de présentation des données, vous devriez effectuer cela du côté de l'applicatif

    @++

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 33
    Par défaut
    Merci c'est exactement ce que je souhaitais.
    Je pouvais le faire du coté applicatif mais c'est bien plus rapide ainsi.

  4. #4
    Expert confirmé
    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
    Par défaut
    Bon, je chipote un peu mais vu que la logique booléenne est à 3 états (0,1 ou NULL) avec un type de données BIT j'écrirais plutôt ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT CASE etat
    			WHEN 0 THEN 'Pas content'
    			WHEN 1 THEN 'Content'
                           ELSE 'Encore moins content'
    		END
    FROM basetest
    Vous avez bien sûr la possibilité de définir la colonne etat non nulle pour éviter à avoir à traiter le cas dans votre CASE

    ++

  5. #5
    Membre Expert

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2007
    Messages : 1 216
    Par défaut
    Je dirais plutot:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    ELSE 'Information manquante'
    ...
    Qui correspondrait mieux a la semantique du NULL.

  6. #6
    Expert confirmé
    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
    Par défaut
    Tu as raison ,

    Le 'encore moins content' était là juste à titre d'exemple mais soyons précis ....

    ++

  7. #7
    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 : 44
    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
    Par défaut
    Si aucune des deux valeurs n'est matchée, on aura NULL
    Je crois que ça répond à vos questions

    @++

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

Discussions similaires

  1. variable dans requete SQL pour delphi
    Par socooooool dans le forum Bases de données
    Réponses: 9
    Dernier message: 25/01/2013, 11h27
  2. requete sql pour bd access97 a tables multiples
    Par waspy59 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 16/03/2006, 00h11
  3. requete sql pour faire un classement
    Par beezee dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/03/2006, 13h03
  4. Requete sql pour création de table dans une base access
    Par Ben156 dans le forum Bases de données
    Réponses: 1
    Dernier message: 17/01/2006, 22h12
  5. Requete SQL pour Access
    Par heraieros dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 13/01/2006, 14h15

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