PostgreSQL:动态构建box数据类型的查询

时间:2012-06-28 16:02:42

标签: sql postgresql postgis common-table-expression dynamic-sql

我正在尝试构建一个语句,动态构建语法以正确查询postgres中的box数据类型。

看起来如下所示:

Note: foo1 is an integer value

with a as (
  select foo1 from foo where id = 1), 
     b as (
  select a, b, c from bar where a && '''('||a.foo1||',0,'||a.foo1||',0)''')
select * from b;

以上查询产生:ERROR: invalid input syntax for type box: "'("

是否可以动态构建此类查询?

请参阅答案Another similar StackOverflow question,其中显示了您通常如何查询箱数据类型。

1 个答案:

答案 0 :(得分:1)

您可以简化整个查询:

SELECT b.a, b.b, b.c
FROM   foo f
JOIN   bar b ON b.a && box(point(f.foo1,0), point(f.foo1,0))
WHERE  f.id = 1;