formule dans une requqte

formule dans une requqte - SQL/NoSQL - Programmation

Marsh Posté le 08-04-2008 à 16:34:24    

bonjour, juste une petite question sql
je souhaite effectuer l'opération suivante sur un des champs retourné par ma requete : (champ=='1' || champ=='A') ? 2 : 1
(=> si champ1 égale A ou 1, j'affiche 2 sinon 1)
je n'ai pas de table intermédiaire me permettant de faire l'opération à l'aide d'une jointure, est-ce possible de la faire directement dans ma requête ?

 

ex : select champ1,champ2 from table;
champ1/champ2
1/1
2/1
3/A
4/B
5/C
6/D

 

donnerais
select champ1,fonction(champ2) from table;
champ1/fonction(champ2)
1/2
2/2
3/2
4/1
5/1
6/1

 



Message édité par djobidjoba le 08-04-2008 à 16:35:30
Reply

Marsh Posté le 08-04-2008 à 16:34:24   

Reply

Marsh Posté le 08-04-2008 à 16:39:25    

Oui, avec qqch comme ca :

Code :
  1. SELECT champ1, (
  2. IF (champ2 == '1' || champ2 == 'A') THEN 2
  3. ELSE 1
  4. END IF)
  5. FROM TABLE;


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Marsh Posté le 08-04-2008 à 16:40:04    

merci

 

http://dev.mysql.com/doc/refman/5. [...] tions.html

 

je suis sous mysql ca tombe bien mais c'est valable sous sql oracle ceci ?


Message édité par djobidjoba le 08-04-2008 à 16:41:08
Reply

Marsh Posté le 08-04-2008 à 16:52:23    

Sous Oracle, il faut utiliser DECODE de mémoire ...


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Marsh Posté le 10-04-2008 à 02:16:31    

c'est ça
 
decode(champ1, '1', 2, 'A', 2, 1)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed