SELECT 'Equal' WHERE ' ' = ''
Результат:
----- Equal (1 row(s) affected)
SQL Server не учитывает конечные пробелы при сравнении строк с помощью оператора =. Вот почему он считает «эквивалентным».
Вот страница, которая объясняет семантику: http://support.microsoft.com/kb/316626
SQL Server оценил ' ' = '' как логический тип, равный TRUE, поэтому он вернет строковый литерал, указанный вами в SELECT.
' ' = ''
То же самое произойдет с: SELECT 'Equal' WHERE 1= 1