Я хотел бы знать, как я могу определить конечные пробелы в таблице. Я использую SQL Server 2008 и создаю следующую таблицу в качестве теста
CREATE TABLE first_test_name
(
firstName varchar(255)
)
А потом вставил такую запись:
insert into first_test_name (firstName)
values('Bob')
Затем я попытался вставить пробел, а затем добавить новую запись, например:
insert into first_test_name (firstName)
values('Bob ') -- just 1 space
И в третий раз
insert into first_test_name (firstName)
values('Bob ') -- two spaces used this time.
Теперь, если я запрашиваю 'Bob' (без пробелов), я все равно получаю счет 3.
Мой запрос был:
select count(*) from first_test_name WHERE firstName = 'Bob'
Разве не должен быть ответ 1?
Кроме того, я использовал sp_help
в этой таблице, а значение "Trim Trailing Blanks" установлено на №.
Так почему я получаю счет 3? Я ожидал только 1.
В связанной заметке, если я выполняю поиск по этому запросу
select * from first_test_name
where firstName like '% '
Затем я получаю правильный ответ из двух найденных строк.
Так что, повторюсь, вопрос в том, почему я получаю счет 3 при поиске «Боб».
Кроме того, что в данном случае означает «Trim Trailing Blanks»?