Почему "2" с начальным пространством больше, чем "10"?
select ' 2' > '10';
?column?
----------
t
(1 row)
Я попробовал его с латинскими и английскими коллаборациями utf8:
List of databases
Name | Owner | Encoding | Collation | Ctype | Access privileges
-----------+------------+-----------+------------------+------------------+-----------------------
cpn | cpn | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
teste | cpn | LATIN1 | en_US.ISO-8859-1 | en_US.ISO-8859-1 |
Я знаю, что он имеет отношение к типу, потому что когда он выполняется, он работает как ожидалось:
teste=> select ' 2'::char > '10';
?column?
----------
f
(1 row)
Что именно происходит здесь?
EDIT:
Все вышеизложенное было выполнено с 8.4.8 в Fedora 13. Но я только что протестировал с 9.04 в Centos 6 с тем же результатом:
select ' 2' > '10';
?column?
----------
t
(1 row)
Список баз данных
Name | Owner | Encoding | Collation | Ctype | Access privileges
-----------+------------+-----------+-------------+-------------+-----------------------
cpn | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
Новое редактирование:
Это еще больше запутать:
select ' ' > '1';
?column?
----------
f
(1 row)