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 :

un if en sql (Test sur champ NULL)


Sujet :

Langage SQL

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 49
    Par défaut un if en sql (Test sur champ NULL)
    Bon je sais que sql n'est pas un langage fonctionnel mais un If m'aidera bien pour faire ma requete

    J'explique :

    J'ai un table ECM
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Numero_client Numero_application Contrat
    0	NULL	1	
    1	0	0	
    1	1	1
    Et j'ai une requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ANd LFA.Numero_application = ECM.Numero_application
    Seulement je veux considerer que si le champ Numero_client est à Null alors c'est valable pr toutes les applications car LFA.Numero_application peut valoir n'importe quoi.

    donc qq du style :
    if( ECM.Numero_application != null) then LFA.Numero_application = ECM.Numero_application

    je sais pas si je suis clair, j'espere

  2. #2
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Par défaut
    Il semble que tu écrives cela dans le cadre d'une jointure : utilise une jointure externe

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 997
    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 997
    Billets dans le blog
    6
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    COALESCE(ECM.Numero_application, LFA.Numero_application) = LFA.Numero_application
    A +
    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/ * * * * *

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 49
    Par défaut
    comment ca en jointure externe ?

    natural join ?

    mais si je fais ca je risque de perdre de l'information car il risque de ne pas me prendre les lignes dont les champs sont à Null.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 49
    Par défaut
    Citation Envoyé par SQLpro
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    COALESCE(ECM.Numero_application, LFA.Numero_application) = LFA.Numero_application
    A +

    Je sais pas ce qu'est cette fonction mais en tout cas ca a l'air de bien marcher ..

    Merci bien
    je vais rechercher a quoi correspond cette fonction

  6. #6
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Par défaut
    Citation Envoyé par vince_grenoblois
    comment ca en jointure externe ?

    natural join ?
    Jointure externe et natural join n'ont rien à voir, je parle bien de jointure externe, pour éviter de perdre des informations.

    Tu devrais poster la requête

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Par défaut
    Bonjour,
    je sais pas si je suis clair, j'espere
    Pas énormément en plus tu ne respectes pas les règles car
    1/Tu ne fournis pas ton modèle de données, la table LFA arrive par miracle.
    2/Tu ne fournis pas ton SGBD.

    Pour répondre strictement à ton
    if( ECM.Numero_application != null) then LFA.Numero_application = ECM.Numero_application
    qui est dans le where
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    and (ECM.Numero_application IS NULL OR
    (LFA.Numero_application = ECM.Numero_application)
    )
    Mais je rejoins Mediat, il semblerait que dans ton cas une jointure externe pourrait convenir.

    Sinon pour manipuler les NULL selon les SGBD il y a
    Coalesce
    ISNULL
    NVL
    Nz

    Cordialement
    Soazig

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

Discussions similaires

  1. Tmap et test sur champ des tables en entrées
    Par Rgent dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 09/03/2009, 13h18
  2. Test sur champs
    Par idamarco dans le forum Langage
    Réponses: 23
    Dernier message: 21/11/2008, 14h30
  3. Filtre sur champ null ou vide
    Par pierrot67 dans le forum Débuter
    Réponses: 4
    Dernier message: 15/09/2007, 13h10
  4. Transact-SQL test sur valeur NULL
    Par samworld dans le forum Langage SQL
    Réponses: 3
    Dernier message: 20/08/2007, 23h11
  5. [debutant] test sur champ de formulaire vide
    Par eyango dans le forum Access
    Réponses: 1
    Dernier message: 25/08/2006, 18h17

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