j'ai un code
DECLARE @A VARCHAR(10) = 'A' DECLARE @B VARCHAR(10) = 'A ' IF(@A=@B) SELECT 'Equal' ELSE SELECT 'Not Equal'
Ici @A et @B ne sont pas égaux.
Pour ne pas ignorer les espaces supplémentaires à la fin, j'ai essayé
IF(REPLACE(@B,' ','.') = REPLACE(@A,' ','.'))
Mes questions sont:
@A et @B sont égaux. Ils ne sont simplement pas les mêmes 🙂 Lors de la comparaison de strings, SQL Server considère que toutes les variantes d'une string avec des espaces de fin sont égales. En outre, le classment actif peut regrouper des strings supplémentaires dans cette class d'équivalence.
Si vous voulez comparer deux strings d'une manière qui distingue les espaces de fin, utilisez l'opérateur like. par exemple
select 1 where 'a' like 'a '
Voir
INF: Comment SQL Server compare les strings avec des espaces de fin