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 :

Utilisation d'un IF dans une clause Where


Sujet :

Langage SQL

  1. #1
    Membre habitué Avatar de jubourbon
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 540
    Points : 189
    Points
    189
    Par défaut Utilisation d'un IF dans une clause Where
    Bonjour à tous,

    Comme précisé dans le titre, je voudrais dans une requete faire des changements selon different cas.

    Je souhaite comparer 2 valeurs:
    • matable.numeroDeSemaine integer
    • un parametre


    Et je souhaite ajouter un 10 à mon numerodesemaine si celui ci est inferieur à 10.

    Voici ma requete actuel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Select idprojet
    from projet
    where projet.numerodesemaine<=1020
    et je souhaiterais dans l'idée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Select idprojet
    from projet
    where 
    IF projet.numerodesemaine<10
      10+projet.numerodesemaine<=1020
    ELse
      projet.numerodesemaine<=1020
    End if
    Mais bien cela ne fonctionne pas. Je ne trouve pas de syntaxe.

    Merci d'avance.

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    bonjour,


    Je ne vois pas bien l'intéret d'un tel procédé vu que 9+10 sera de toute façon inférieur à 1020.

    Sinon en sql le IF est modélisé par une structure CASE ...WHEN.

    Faites de préférences vos opérations arythmétique sur la constante.

  3. #3
    Membre habitué Avatar de jubourbon
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 540
    Points : 189
    Points
    189
    Par défaut
    Autant pour moi je rectifie
    monnumerodesemaine est un varchar

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT idprojet
    FROM projet
    WHERE projet.numerodesemaine<='1020'
    je vais regarder les cases

  4. #4
    Membre habitué Avatar de jubourbon
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 540
    Points : 189
    Points
    189
    Par défaut
    J'ai trouvé avec le case pour ce que ça intéresse:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT idprojet
    FROM projet
    WHERE case 
    when numerosemaine<10 then '10' + projet.numerodesemaine 
    else projet.numerosemaine end<='1020'

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

Discussions similaires

  1. Utiliser un alias de colonne dans une clause Where MS SQL
    Par sir dragorn dans le forum Langage SQL
    Réponses: 11
    Dernier message: 12/10/2011, 09h31
  2. Utiliser un champ Oui/Non dans une clause WHERE ?!
    Par _MattU_ dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 27/06/2008, 13h32
  3. [ASE]Utiliser timestamp dans une clause WHERE
    Par JeffK dans le forum Adaptive Server Enterprise
    Réponses: 14
    Dernier message: 03/12/2007, 12h34
  4. Utiliser une chaine de caractère dans une clause WHERE
    Par DanaX dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 15/05/2007, 12h02
  5. [SQL2K][TSQL] Peut-on utiliser un alias dans une clause Where ?
    Par StormimOn dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 23/05/2006, 09h25

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