2

我无法从 pgsql 9.1 上包含 BOX 类型列的表中进行选择

create table test (t box);
CREATE TABLE
select * from test order by t;
ERROR:  could not identify an ordering operator for type box
LINE 1: select * from test order by t;
                                     ^
TIP:  Use an explicit ordering operator or modify the query.

我发现有一类运算符(box_ops)应该处理排序和相等性,甚至尝试为列创建显式索引。

create index testx on test using gist (t box_ops);
CREATE INDEX

但问题仍然存在。我错过了什么?谢谢!

4

1 回答 1

1

您必须明确指定一个运算符。例如:

SELECT * FROM test ORDER BY t USING &<

您必须确定实际需要的排序并选择相应的比较运算符。

中定义的运算符box_ops可在http://www.leadum.com/downloads/dbscribe/samples/postgresql/web_modern/opclass/main/1325676015.html获得

另见:http ://www.postgresql.org/docs/current/interactive/functions-geometry.html

于 2013-02-04T17:30:03.020 回答