Bonjour,

Voici un petit exemple d'un problème que je rencontre.

Selon moi, la deuxième requette ne devrait pas me renvoyer une erreur de conversion de type de données sachant que la condition n'est pas à TRUE.
Elle devrait m'afficher la chaîne d'origine. Je me trompe ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
 
declare
@valstr varchar(10)
 
select case when @valstr not like '%et%' then CONVERT(float,@valstr) else @valstr end
 
set @valstr='30 et 50'
 
select case when @valstr not like '%et%' then CONVERT(float,@valstr) else @valstr end

D'ailleurs j'ai fait la vérification via cette dernière modifié ainsi :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
select case when @valstr not like '%et%' then /*CONVERT(float,@valstr)*/ @valstr+'***'  else @valstr end
Les étoiles ne sont pas affichées.

Merci pour vos commentaires.