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

PostgreSQL Discussion :

if then else en sql


Sujet :

PostgreSQL

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1
    Par défaut if then else en sql
    Bonjour

    J'ai un problème de code SQL que je ne sais pas résoudre (Postgresql 16)

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT "Id_Adherent", "Nom", "Prenom", "Activ_1",
    Case "Activ_1"
    when "Activ_1" IS NOT NULL
    then 'bravo'
    End "Activ_1"
    FROM "public"."T_Adh" "T_Adh"

    où Activ_1 est character varying, j'obtiens la réponse suivante :

    ERROR: l'opérateur n'existe pas : character varying = boolean
    LINE 3: when "Activ_1" IS NULL

    Merci
    Poild30

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 410
    Par défaut
    Bonjour,
    Tu mélanges 2 syntaxes du CASE WHEN dans ta requête.
    Ici ce serait plutôt:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT "Id_Adherent", "Nom", "Prenom", "Activ_1",
    Case when "Activ_1" IS NOT NULL
    then 'bravo'
    End "Activ_1"
    FROM "public"."T_Adh" "T_Adh"

    Tatayo.

  3. #3
    Membre Expert
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Septembre 2016
    Messages
    952
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2016
    Messages : 952
    Par défaut
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT "Id_Adherent", "Nom", "Prenom", "Activ_1", Case when "Activ_1" IS NOT NULL then 'bravo' End "Activ_1"
    FROM "public"."T_Adh" "T_Adh"

    Juste pour commenter le code de la requête :
    • L'alias de la table ne sert à rien ; autant ne rien mettre ; ou alors un nom très court comme "A"...
    • Avoir 2 colonnes qui portent le même nom dans le SELECT, est-ce vraiment judicieux ?
    • Les doubles cotes sont requises en cas d'ambiguïté sur le nom de l'objet (exemple de nom de colonne : "FROM", "Date de naissance", "mois - an", ...) => les supprimer = plus lisible



    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT Id_Adherent
         , Nom
         , Prenom
         , Activ_1
         , Case when Activ_1 IS NULL then NULL else 'bravo' End As Commentaire  
    FROM public.T_Adh

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 996
    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 : 21 996
    Billets dans le blog
    6
    Par défaut
    Dans ce tutoriel, vous verrez l'utilisation de CASE :

    https://sqlpro.developpez.com/cours/sqlaz/select/#L7
    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/ * * * * *

Discussions similaires

  1. IF THEN ELSE en SQL
    Par tofque dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 05/03/2008, 17h23
  2. [TagLib] Structure if then else
    Par mush_H dans le forum Taglibs
    Réponses: 5
    Dernier message: 19/07/2005, 15h31
  3. If Then Else
    Par Piout dans le forum MS SQL Server
    Réponses: 13
    Dernier message: 24/02/2005, 16h09
  4. IF THEN ELSE imbriqués
    Par nuke_y dans le forum Oracle
    Réponses: 2
    Dernier message: 15/11/2004, 14h57
  5. [CR 7] [débutante] pb avec if then else
    Par xs_nady dans le forum Formules
    Réponses: 8
    Dernier message: 28/05/2004, 15h36

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