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 :

Retourner NULL si aucune valeur trouvée


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 287
    Points : 100
    Points
    100
    Par défaut Retourner NULL si aucune valeur trouvée
    Bonjour,

    Voilà ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select date as DATEFIN
            from evenement e
            where e.type = '93'
            and e.val = '10'
    Utilisant ensuite DATEFIN dans un coalesce, je souhaiterai que celle-ci prenne pour valeur 'NULL' si aucun enregistrement n'est retournée.
    Est-ce possible? Si oui comment puis-je faire?

    En vous remerciant par avance.

    Bonne journée.

  2. #2
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    tu peux peut etre utilisé la fonction DECODE
    ... un flash ... et ça repart

    700R ... catch me if u can

    Best regards,
    .

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 287
    Points : 100
    Points
    100
    Par défaut
    Cela reviens au même probléme non? Que mettre comme argument pour la valeur comparée?
    SELECT decode (date, ???, 'null') from evenement
    ...

  4. #4
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Salut !

    Decode est spécifique Oracle ?

    Bon en tous cas, le problème est ailleurs si je ne me trompe pas : tu veux renvoyer une ligne avec NULL dans le cas où aucune ligne n'est retournée, c'est ça ?

    Dans ce cas, tu peux entre autres choses amusante faire une jointure externe fictive :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT date AS DATEFIN
    FROM (SELECT 1 FROM DUAL) a LEFT OUTER JOIN evenement e
      ON e.type = '93'
     AND e.val = '10'

    (c'est ma photo)
    Paku, Paku !
    Pour les jeunes incultes : non, je ne suis pas un pokémon...

    Le pacblog : http://pacmann.over-blog.com/

  5. #5
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 780
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 780
    Points : 3 033
    Points
    3 033
    Par défaut
    J'ai un gros doute : lorsqu'aucun enregistrement n'est retourné, DATEFIN devrait déjà être sur NULL. A te lire, ce n'est pas le cas, cela me surprend.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    DECLARE @dte AS DateTime
     
    SELECT @dte=LastRunStartTime 
    FROM Users.Parameters 
    WHERE UpdateOnGoing = 1
     
    SELECT @dte
    Mon instruction SELECT ne me retourne rien car je sais que le champs UpdateOnGoing est sur 0. Aussi, ma variable devrait être nulle. Et c'est ce que m'affiche correctement mon second select.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 287
    Points : 100
    Points
    100
    Par défaut
    Merci à vous tous, j'ai reussi à faire ce que je voulais.
    Pour info j'ai utilisé un UNION bidon (ce qui reprend le principe de la jointure bidon) et j'ai affecté ce que je voulais.

    Bonne journée.

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

Discussions similaires

  1. subreport ne retourne aucune valeur
    Par phicault dans le forum iReport
    Réponses: 3
    Dernier message: 11/06/2008, 11h51
  2. Gérer un select into avec aucune valeur trouvée
    Par randriano dans le forum SQL
    Réponses: 18
    Dernier message: 19/03/2008, 19h58
  3. Ne retourner aucune valeur
    Par FredoMkb dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 23/05/2007, 19h33
  4. Réponses: 2
    Dernier message: 19/01/2007, 11h53
  5. Ma requete me retourne aucune valeur
    Par zorba49 dans le forum Langage SQL
    Réponses: 19
    Dernier message: 22/08/2005, 14h10

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