[CASE + VARCHAR] : Nombre de caractères
Bonjour,
J'ai remarqué une chose sur l'utilisation du CASE sous Firebird 2.5 sur une petite table de test et me demandais si c'était un bug ou un fonctionnement normal (et dans ce cas, pourquoi...).
IDE :
Delphi XE2, composants DbExpress
Table1 :
Champ1 : Varchar(15)
Champ2 : Integer
Je passe la requête suivante :
Code:
1 2 3 4 5 6 7
| Update Table1
Set Champ1 =
Case
When Champ2 < 3 then 'EN COURS'
Else 'ECHEC'
End
Where Champ2 is not null; |
Les champs qui devraient être valorisés à 'ECHEC' prennent la valeur 'ECHEC ', visiblement parce que 'EN COURS' fait 8 caractères. Le problème ne se pose pas si j'écris :
Code:
Else Cast('ECHEC' as Varchar(5))
Avez-vous une explication ?
Merci d'avance pour vos réponses.