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 :

Problème avec IIF


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 680
    Par défaut Problème avec IIF
    Bonjour,

    Contexte simplifié: J'ai deux champs A et B, A est toujours rempli mais parfois mal et B est principalement vide (NULL) sauf pour les lignes ou A est faux.
    J'aimerais obtenir un troisième champs C qui contient B si il renseigné sinon A.
    En cherchant un peu je tombe sur IIF qui me semble prometteur, mais bien si je suis là c'est que ça se passe mal !

    Mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select A,B,IIF(B is null,A,B) as C
    J'obtient une erreur de parenthèse de droite absente au niveau du "is" (j'ai bien vérifier il ne me manque aucune parenthèse sur ma ligne)

    Quelqu'un peut m'expliquer ce que je fait mal ?
    Merci d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 440
    Par défaut
    Bonjour,
    Visiblement Oracle ne connait pas IIF. Tu peux utiliser un CASE à la place.

    Tatayo.

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 135
    Par défaut
    Je n'ai pas connaissance que IIF soit une fonction Oracle.
    Tu devrais plutôt regarder du côté de CASE ou mieux encore COALESCE (SQL normalisé) ou NVL (spécifique à Oracle).
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 680
    Par défaut
    Merci pour ces retours, je teste ça demain.

  5. #5
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 680
    Par défaut
    Un grand merci pour la découverte de la fonction coalesce que je ne connaissait pas du tout.
    Cependant j'ai quand même un soucis que ce soit avec coalesce ou case j'ai la même erreur, au niveau de ma seconde variable:
    ORA-00932: types de données incohérents ; attendu : NUMBER ; obtenu : CHAR
    Or dans l'aide que je trouve sur la fonction ça me dit que les expressions peuvent être de tout type:
    Syntaxe
    COALESCE ( expression [ ,...n ] )
    Arguments
    expression
    Expression de tout type.
    edit: j'ai oublié de mettre ma requête ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select A,B,coalesce(B,A) as C from matable
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select A,B,CASE WHEN (B IS NOT NULL) THEN B ELSE A end from matable
    edit2: Avec un cast ça fonctionne mais je ne comprend toujours pas pourquoi il faut forcément une valeur numérique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select A,B,coalesce(B,cast(A as number)) as C from matable

  6. #6
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 005
    Par défaut
    Est-ce que A et B sont de même type?

  7. #7
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 680
    Par défaut
    Citation Envoyé par Ikebukuro Voir le message
    Est-ce que A et B sont de même type?
    Non, je comprends l'erreur maintenant, tous les champs doivent être du même type.

    MERCI beaucoup

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

Discussions similaires

  1. [AC-2016] Problème formule IIF avec OU
    Par Banditof dans le forum Access
    Réponses: 3
    Dernier message: 25/07/2016, 18h20
  2. Problème avec fonction iif
    Par djelloharmel dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 06/02/2012, 15h50
  3. [CR XI] Problème avec IIF
    Par tornade69 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 31/03/2009, 00h59
  4. Problème avec le IIf
    Par BenoitM dans le forum VB.NET
    Réponses: 3
    Dernier message: 26/02/2008, 23h32
  5. problème avec iif
    Par lesafir dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 14/06/2007, 15h19

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