为什么带有初始空格的 '2' 比 '10' 大?
这里到底发生了什么?
编辑:
以上所有内容都是在Fedora 13中使用8.4.8完成的。但我刚刚在Centos 6中使用9.04进行了测试,结果相同。
新编辑:
这是为了进一步混淆:
select ' 2' > '10';
?column?
----------
t
(1 row)
我尝试使用了latin1和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)
这里到底发生了什么?
编辑:
以上所有内容都是在Fedora 13中使用8.4.8完成的。但我刚刚在Centos 6中使用9.04进行了测试,结果相同。
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)