Может кто-нибудь объяснить мне результат этого запроса? - PullRequest
0 голосов
/ 07 апреля 2011
SELECT 'Equal'
WHERE ' ' = ''

Результат:

-----
Equal

(1 row(s) affected)

Ответы [ 2 ]

7 голосов
/ 07 апреля 2011

SQL Server не учитывает конечные пробелы при сравнении строк с помощью оператора =. Вот почему он считает «эквивалентным».

Вот страница, которая объясняет семантику: http://support.microsoft.com/kb/316626

0 голосов
/ 07 апреля 2011

SQL Server оценил ' ' = '' как логический тип, равный TRUE, поэтому он вернет строковый литерал, указанный вами в SELECT.

То же самое произойдет с: SELECT 'Equal' WHERE 1= 1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...