PostgreSQL查询失败

时间:2015-05-07 16:39:57

标签: sql postgresql postgresql-9.2 postgresql-9.3

我对PostgreSQL有一个独特的问题。在将数据插入数据库后,我尝试检索大于特定字符串的所有内容。但是,它不会返回任何数据。所以,我在另一台机器上尝试了这个并且它有效。所以我的问题是我的数据是在一台机器上返回的,而不是另一台机器上。我测试过:

运行PostgreSQL 9.2的Windows 7专业版桌面(WORKED)
Windows 8.1专业版笔记本电脑运行PostgreSQL 9.3(WORKED)
Fedora 20运行笔记本电脑PostgreSQL 9.3(工作)
Fedora 20运行桌面PostgreSQL 9.3(FAILED)

以下是我的测试用例,该测试用例分布在所有系统中:

create table test(key0 character(38) not null, constraint pkey primary key (key0)) with (oids=false);
insert into test (key0) values ('00 00        00        00 0000');

以下查询在机器上返回不同的结果:

select * from test where key0 >= '00 00        00        00 00        00' order by key0;

我完全不知道为什么这些查询在一台机器上不起作用。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

这很可能与整理有关。见:

select * from test where key0 >= '00 00        00        00 00        00' order by key0;
 key0 
------
(0 rows)

select * from test where key0 >= '00 00        00        00 00        00' COLLATE "C" order by key0;
                  key0                  
----------------------------------------
 00 00        00        00 0000        
(1 row)

我猜你没有为CREATE DATABASE语句提供LC_COLLATE参数,并且它复制了系统默认值,这在系统中恰好是不同的。