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 :

Faire un calcul dans la clause SELECT ?


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 23
    Par défaut Faire un calcul dans la clause SELECT ?
    Bonjour

    Je voudrais faire un test sur une valeur dans ma clause SELECT et avoir un résultat.
    Mon exemple : J'ai un champ "date" dans ma table, je veux que ma requête ressemble à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT nom, (SI date+10jours>sysdate ALORS affiche 'O' SINON 'N') as "date"
    FROM ...
    WHERE ...
    C'est possible ? Si oui comment ????

    MERCI !!!

    Cordialement

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Recherchez du côté de la fonction CASE.

  3. #3
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 23
    Par défaut
    Merci mais j'ai une erreur, je ne vois pas où faire mon test avec l'opérateur ">"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT CASE datecreation
      WHEN datecreation>SYSDATE-7 THEN 'O'
      ELSE 'N'
      END
    "Date Creation"
    FROM ....
    Vous avez une idée ?

  4. #4
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 23
    Par défaut
    C'est bon ça fonctionne comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT CASE WHEN datecreation>SYSDATE-7 THEN 'O'
      ELSE 'N'
      END
    "Date Creation"

    merci pr la piste du "case"

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Comme vous l'avez remarqué (ou presque remarqué), la syntaxe CASE possède deux écritures.
    La principale :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CASE
      WHEN condition1 THEN result_true1
      WHEN condition2 THEN result_true2
      ...
      ELSE result_false
    END

    Si la condition est une condition d'égalité (et uniquement d'égalité), on peut écrire sous une forme un peu plus légère ainsi :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CASE colonne
      WHEN val1 THEN result_true1
      WHEN val2 THEN result_true2
      ...
      ELSE result_false
    END
    Ça ne fonctionne pas avec NULL en tant que valeur.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 08/07/2008, 19h41
  2. [HTML] faire des tabulation dans une liste <select>
    Par renofx1 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 20/01/2006, 23h36
  3. 3 conditions dans une clause SELECT
    Par Aurèl90 dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 03/11/2005, 16h05
  4. If dans la clause SELECT...
    Par argv666 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 29/10/2005, 07h13
  5. Sous-requête dans la clause Select
    Par Danger dans le forum WinDev
    Réponses: 2
    Dernier message: 24/05/2005, 17h33

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