Instruction CASE

Résolu
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 - 26 juin 2008 à 10:02
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 - 27 juin 2008 à 14:21
Salut à tous,

J'ai une question probablement un peu con, mais bon; Je dois mettre en production dans peu de temps et je n'ai pas la base production pour faire les essais, je fais donc appel à vos connaissance.

Dans le cadre de la création d'une vue (SQLServer2005) si j'ai une requette du style :

SELECT
    .....,
    CASE
       WHEN Champ1 = valeur1 THEN Result1
       WHEN Champ2 = valeur2 THEN Result2
       ELSE 0.00
    END,
    ......,
FROM .....

Si j'ai les 2 conditions remplies, c'est à dire, à la fois Champ1=valeur1 et Champ2=valeur2, qu'elle est la valeur qui sera retournée, Result1 ou Result2 ????

---- Sevyc64  (alias Casy) ---- <hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php

8 réponses

nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
26 juin 2008 à 15:26
Salut casy,

J'ai fais les tests chez moi avec mysql mais ça doit pas être super différent de SQLserver2005...

Je suis content que ce soit a mon tour de t'aider, pour te montré ma reconaissance...

Donc comme je l'ai dit plus haut, j'ai fait une requête toute simple sous mysql, je te la met :

SELECT `champs1`,`champs2`,`champs3`,`champs4`,`champs5`,`champs6`, CASE
     WHEN `champs1` = 2 THEN 'a'
     WHEN `champs2` = 3 THEN 'b'
     WHEN `champs3` = 8 THEN 'c'
END AS resultat FROM test

resultat est un champs que j'ai laissé vide...
champs1 contient 2
champs2 contient 3
champs3 contient 8
test c'est ma table

Ce que j'obtient dans mon champs text resultat c'est : a

Donc je pense que c'est la première condition vrai qui sera éxécuté !

a++

PS : merci, grace a toi je me suis plongé dans le vrai SQL, avant je faisait que des truc du genre SELECT, DELETE, UPDATE mais maintenant je vais me lancer dans les procédures stockées, les condition avec les : IF, NULIF, IFNUL, CASE, etc...

Encore merci, décidément, même quand tu as besoin d'aide tu aide les gens !

Si la réponse vous convient, pensez : Réponse acceptée !
3
crn_c21 Messages postés 302 Date d'inscription samedi 24 janvier 2004 Statut Membre Dernière intervention 4 février 2011
27 juin 2008 à 14:09
Je confirme le CASE valide la première condition vérifiée. Saches que dans ces conditions l'utilisation de CASE imbriqués peut etre utile...
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
26 juin 2008 à 15:34
Ok c'est ce que je pensais (et espérais ).

Si quelqu'un peut me confirmer sur SQL2005

sinon si je trouve 5min je me ferais le test mais c'est chaud en ce moment.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
26 juin 2008 à 16:19
Je ne vois pas pourquoi ce serai différent sous SQLserver2005, au passage, il n'y a presque personne sur ce site donc je suis pas sur que tu aura ta réponse... Peut être que tu l'aura dans  2/3 mois, lol !!!

a++

Si la réponse vous convient, pensez : Réponse acceptée !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
26 juin 2008 à 16:28
MDR, peut-etre oui, d'ici là ça sera déjà en prod donc les tests auront été fait d'une façon ou d'une autre.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
26 juin 2008 à 17:05
Bon, j'ai trouvé 30sec pour faire un test sur un semblant de base qui me reste dans un coin.

Le comportement semble etre le même sous SQLServer 2005

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
26 juin 2008 à 22:23
Ok, je suis content d'avoir enfin pu t'aider !

Et grace a toi, je me met vraiment aux SQL, je crois qu'un réapprentissage des bases s'impose !

a++

Si la réponse vous convient, pensez : Réponse acceptée !
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
27 juin 2008 à 14:21
Merci pour ta confirmation.

Mon problème est que je peux me retrouver dans une situation ou plusieurs conditions sont valides en même temps avec un résultat renvoyé différent. Or dans ce cas, une des conditions est prioritaire, donc ce fonctionnement me convient parfaitement

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
Rejoignez-nous