PostgreSQL:为box数据类型动态生成查询

PostgreSQL:为box数据类型动态生成查询,sql,postgresql,postgis,common-table-expression,dynamic-sql,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; 上

我试图构造一个语句,动态地构建语法,以正确地查询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;
上面的查询生成:
错误:类型框“”(“

是否可以动态构建这种类型的查询


查看显示如何正常查询框数据类型的答案。

您可以简化整个查询:

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;

您可以简化整个查询:

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;
替换为
框(点(a.foo1,0),点(a.foo1,0))
替换为
框(点(a.foo1,0),点(a.foo1,0))