Remplacement du case... when de SQL

Philoche69 Messages postés 7 Date d'inscription samedi 9 octobre 2004 Statut Membre Dernière intervention 15 mars 2006 - 13 oct. 2004 à 21:21
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 - 14 oct. 2004 à 08:09
Bonsoir à tous,
Je bloque actuellement sur un problème :
En "vrai" SQL (celui de SQL server 7 par exemple), il existe une fonction case qui permet de modifier les données en sortie

ex :
SELECT nom, prenom, CASE civilite
WHEN 1 THEN 'Monsieur'
WHEN 2 THEN 'Madame'
WHEN 3 THEN 'Mademoiselle'
ELSE 'Madamesieur"
END
FROM ....

C'est pratique pour "transcoder" des données numériques en champs texte (je suis de toutes facons obligé, car je ne dois pas modifier la table d'origine)

Malheureusement, VB6, ADO, les Data Environments et autres Data Report refusent la syntaxe "case"

La seule solution que j'ai trouvé est de monter une table annexe avec les correspondances numériques/textes et de faire un lien sur le champ.

Quelqu'un aurait-il été confronté au même problème et si oui, comment l'a-t-il résolu ?
Merci d'avance.

1 réponse

crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
14 oct. 2004 à 08:09
PAsse par une autre variable et une structure select case :
Dim StrCivilite as string
Select case adodb.recordset!Civilite
Case 1
  strCivilite = "Monsieur"
Case 2
  strCivilite = "Madame"
case 3
  strCivilite = "Mademoiselle"
case Else
  strCivilite =  " ???????????"
End Select

A noter que la Clause "Case Else" est optionnelle

Christophe R.
0
Rejoignez-nous