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

Développement SQL Server Discussion :

Problème CASE avec multiples conditions dont IS NULL


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2011
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 4
    Par défaut Problème CASE avec multiples conditions dont IS NULL
    Bonjour,

    Je souhaite tester si COLONNE1 et COLONNE2 sont vides ou contiennent un espace ' '

    J'ai testé cette requête mais j'ai une erreur.
    C'est apparemment le IS NULL qui pose problème car si je le remplace par 'abc' ça fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE MA_TABLE_TEST SET COLONNE1 =
    
    ( CASE COLONNE2
    WHEN 'VAR1' THEN
    CASE WHEN COLONNE3 in (IS NULL,' ') THEN 'OK1'
    ELSE 'OK2'
    END
    WHEN 'VAR2' THEN
    CASE WHEN COLONNE3 in (IS NULL,' ') THEN 'OK3'
    ELSE 'OK4'
    END
    END
    )
    Pourriez-vous m'aider svp ?

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CASE WHEN COLONNE3 IS NULL OR COLONNE3 = ' ' THEN 'OK1'

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2011
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 4
    Par défaut
    Citation Envoyé par 7gyY9w1ZY6ySRgPeaefZ Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CASE WHEN COLONNE3 IS NULL OR COLONNE3 = ' ' THEN 'OK1'
    Merci !
    Ça fonctionne maintenant

  4. #4
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Tu peux aussi utiliser cette syntaxe :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CASE WHEN coalesce(COLONNE3, ' ') = ' ' THEN 'OK1'

    L'avantage c'est que tu peux indexer coalesce(COLONNE3, ' ') et du coup la condition devient sargable.

  5. #5
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Dans le cas present ISNULL suffit et est sans doute meme plus performant :-)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CASE WHEN ISNULL(COLONNE3, ' ') = ' ' THEN 'OK1'
    Comme ça tu as deux possibilités
    L'avantage que peut avoir le COALESCE c'est qu'il permet les parametres en cascade

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    COALESCE(COLONNE3,COLONNE2,COLONNE1,' ')=' '
    Le premier non NULL à gagné :-)

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par olibara Voir le message
    Dans le cas present ISNULL suffit et est sans doute meme plus performant :-)
    Faudrait argumenter un peu plus, surtout pour la performance, parce que pour moi, c'est blanc bonnet et bonnet blanc.

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

Discussions similaires

  1. Problème boucle avec plusieurs conditions
    Par Naxence dans le forum Général VBA
    Réponses: 2
    Dernier message: 29/03/2012, 14h38
  2. [AC-2010] Problème critère avec plusieurs conditions
    Par ZoliveR dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 06/05/2011, 20h52
  3. [XL-2003] boucle For avec multiple conditions d'arret
    Par yvespi dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/05/2010, 09h30
  4. Réponses: 10
    Dernier message: 26/03/2008, 15h00
  5. Problème requête avec 2 conditions
    Par omgirl dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 12/07/2006, 16h19

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