PostgreSQL: динамически построить запрос для типа данных box
Я пытаюсь создать оператор, который динамически создает синтаксис для правильного запроса типа данных box в postgres.
Это выглядит примерно так:
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: "'("
Можно ли построить этот тип запроса динамически?
См. Ответ Другой похожий вопрос Stackru, который показывает, как вы обычно запрашиваете тип данных box.
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;