08.03.2011 7:52, AZDesign пишет:
- строка пробелов любой длины рассматривается как пустая, т.е. функция OCTET_LENGTH дает 0
У меня почему-то не дает. Что я делаю не так?
- конечные пробельные символы ВСЕГДА НЕ ЗНАЧИМЫЕ, т.е. ' #' = ' # ', (их длина одинаковая), что не соответствует вышеописанному.
Не значимые они при сравнении. Они просто игнорируются. Таково требование стандарта, независимо от типа данных.
Но пробелы в строке таки хранятся. И прочитав данные на клиента и сравнив их вручную, пробелы станут значимыми. Да и на сравнении свет клином не сошелся. Длина этих пробелов очень даже учитывается, попробуй например конкатенацию - вот они родные и вылезли. Это считается незначимыми в твоем понимании?
Просто текст в книге несколько неоднозначен. Написано там про особенности хранения пробелов в строках разных типов, а не про их сравнение SQL-операторами.
-- Дмитрий Еманов

