La requête suivante ne renvoie aucun résultat:
select * from MyTable where MyVarChar = '99903'
MyVarChar est une colonne varchar(20) not null
.
Les données suivantes sont stockées dans la table (à la 'select *'):
Id MyVarChar 1 99901 2 99902 3 99903
Curieusement, si je fournis '99901' ou '99902' dans la comparaison, j'obtiens un résultat.
J'ai essayé lsortingm
et rsortingm
deux côtés de la comparaison sans succès.
Je suis … confus. : P Des pensées?
Essayez quelque chose comme ceci:
SELECT * FROM MyTable WHERE MyVarChar LIKE '%99903%';
Cela returnnera n'importe quoi avec 99903 dedans, donc si vous avez des trucs supplémentaires à la fin (ou devant), ça marchera quand même. RTRIM()
et LTRIM()
auraient dû le faire pour vous.
Faire le cast à varbinary(max)
suggéré par @Vladimir a montré l'espace caché: il s'est avéré être un CR+LF
à la fin de la string.