08.03.2011 7:52, AZDesign пишет:

- строка пробелов любой длины рассматривается как пустая, т.е. функция
OCTET_LENGTH дает 0

У меня почему-то не дает. Что я делаю не так?

- конечные пробельные символы ВСЕГДА НЕ ЗНАЧИМЫЕ, т.е. '   #' = '   #   ',
(их длина одинаковая), что не соответствует вышеописанному.

Не значимые они при сравнении. Они просто игнорируются. Таково требование стандарта, независимо от типа данных.

Но пробелы в строке таки хранятся. И прочитав данные на клиента и сравнив их вручную, пробелы станут значимыми. Да и на сравнении свет клином не сошелся. Длина этих пробелов очень даже учитывается, попробуй например конкатенацию - вот они родные и вылезли. Это считается незначимыми в твоем понимании?

Просто текст в книге несколько неоднозначен. Написано там про особенности хранения пробелов в строках разных типов, а не про их сравнение SQL-операторами.


--
Дмитрий Еманов

Ответить