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

SQL Oracle Discussion :

[O10] évaluer une condition comme un champ


Sujet :

SQL Oracle

Vue hybride

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 47
    Par défaut [O10] évaluer une condition comme un champ
    'lo

    Je souhaiterai "transformer" un ensemble de conditions en un champ.
    Je m'explique : soit la requete suivante

    select ... from dossier where ...

    qui me retourne la liste de tous mes dossiers.

    Si je veux la liste des dossiers éligibles, je dois ajouter les restrictions suivantes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    date_maj<$today and type='ARRETE' and niveau <5 and date_echeance is not null
    J'aurai voulu transformer les conditions en un champ avec une syntaxe proche de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    select
     dossier.*,
     evaluate(
       date_maj<$today and 
       type='ARRETE' and 
       niveau <5 and 
       date_echeance is not null) as ELIGIBLE
    from dossier
    Est-ce qu'il existe une construction de ce type ?

    Pour info : la table ne m'appartient pas et je souhaiterai être le moins intrusif possible (pas de vue et encore moins de procédures stockées)

    D'avance merci

  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
    Essayez avec un CASE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT dossier.*,
        CASE WHEN date_maj < sysdate and type='ARRETE' and niveau < 5 and date_echeance is not null THEN 1 ELSE 0 END as ELIGIBLE
    FROM dossier

  3. #3
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    La réponse du Waldmar est sûrement ce que tu cherchais.

    Juste pour information, l'opérateur EVALUATE a été introduit en 10gR2

    http://download.oracle.com/docs/cd/B....htm#sthref258

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 47
    Par défaut
    Merci,

    Je ne connaissais pas la construction CASE WHERE.
    Quid de la portabilité ? (SQL server, Mysql ...)

  5. #5
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    CASE est un opérateur SQL ANSI 1999 donc aucun souci pour SQL Server et en principe pour les autres SGBD pourvu qu'ils s'attachent à respecter les normes

Discussions similaires

  1. évaluer une chaîne comme critère de condition en VBA
    Par niko9600 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/12/2014, 15h11
  2. [AC-2003] Mettre une condition sur un champ
    Par tarnx dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 28/12/2010, 11h10
  3. [SQL] - Faire une condition si un champ n'est pas nul
    Par toxycyty dans le forum Débuter
    Réponses: 2
    Dernier message: 19/06/2008, 10h42
  4. Une condition du genre "champ contient valeur" ça existe ?
    Par nicolas2603 dans le forum VBA Access
    Réponses: 3
    Dernier message: 20/05/2008, 16h52
  5. évaluer une chaîne comme critère de condition en VBA (excel)
    Par fabien.toune dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/09/2005, 14h50

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