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

Langage SQL Discussion :

Erreur sur commande CASE WHEN


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Webdesigner
    Inscrit en
    Avril 2014
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2014
    Messages : 92
    Par défaut Erreur sur commande CASE WHEN
    Bonjour à tous,

    Je travaille sur la requête suivante sur phpMyAdmin, où id, nom, prenom, typeChambre et 19mars sont des champs de ma BDD:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id, nom, prenom, typeChambre, (CASE 19mars WHEN typeChambre=SGL THEN 1 WHEN typeChambre=TWIN THEN 0,5 ELSE 0 END) FROM olympiades ORDER BY nom
    J'ai mis la commande CASE entre parenthèses car je crois comprendre que sinon elle n'est pas reconnue par phpMyAdmin.

    Lorsque je lance la requête j'obtiens l'erreur suivante :
    #1064 - Erreur de syntaxe près de '5 ELSE 0 END) FROM olympiades ORDER BY nom LIMIT 0, 25' à la ligne 1

    J'ai essayé d'entourer SGL, TWIN, 1 et 0,5 de simple quotes, puis de doubles quotes... Rien n'y fait.

    Quelqu'un peut-il m'éclairer de ses lumières ?
    Merci par avance.

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

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 575
    Par défaut
    Bonjour,
    Et en remplaçant 0,5 par 0.5 ?

    Tatayo.

  3. #3
    Membre confirmé
    Femme Profil pro
    Webdesigner
    Inscrit en
    Avril 2014
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2014
    Messages : 92
    Par défaut
    Bonjour Tatayo,

    Merci pour ton message.

    En remplaçant 0,5 par 0.5 l'erreur change. J'obtiens maintenant :
    #1054 - Champ 'SGL' inconnu dans field list

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

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 575
    Par défaut
    Si SGL est une chaine, il faut l'entourer de guillemets (').
    Idem pour TWIN, d'ailleurs.

    Tatayo.

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

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 575
    Par défaut
    Je viens de relire en détail la requête, et ton CASE me dérange un peu.
    Soi tu fais:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (CASE WHEN typeChambre='SGL' THEN 1 WHEN typeChambre='TWIN' THEN 0.5 ELSE 0 END)
    Soit:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (CASE typeChambre WHEN 'SGL' THEN 1 WHEN 'TWIN' THEN 0.5 ELSE 0 END)

    Là je vois un mélange des deux, je doute que ça fonctionne.

    Tatayo.

  6. #6
    Membre confirmé
    Femme Profil pro
    Webdesigner
    Inscrit en
    Avril 2014
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2014
    Messages : 92
    Par défaut
    Perfecto Tatayo !
    Ca fonctionne nickel.

    Un grand merci pour ton aide

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

Discussions similaires

  1. order by sur un case when HQL
    Par ekremyilmaz dans le forum Hibernate
    Réponses: 2
    Dernier message: 04/01/2011, 11h12
  2. Erreur avec condition case when
    Par gtraxx dans le forum Requêtes
    Réponses: 6
    Dernier message: 06/12/2010, 16h47
  3. erreur ORA 00905 : Mot clé absent sur un CASE WHEN
    Par gaijinma dans le forum PL/SQL
    Réponses: 2
    Dernier message: 01/07/2010, 14h32
  4. XFree86 erreur sur commande startx
    Par titito dans le forum Unix
    Réponses: 1
    Dernier message: 03/07/2009, 11h15
  5. Erreur sur un case
    Par kurul1 dans le forum C++Builder
    Réponses: 4
    Dernier message: 02/05/2007, 09h57

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