我正在尝试构建一个语句,动态构建语法以正确查询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,其中显示了您通常如何查询箱数据类型。
答案 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;