Поиск и получение положения в массиве JSON

Generalproger
Дата: 11.03.2015 15:47:25
Здравствуйте, имеется колонка sup с типом JSON значение которой [[1,4,9],[2,3,5]]

Как провести выборку SELECT ... FROM ... WHERE любой_элемент(sup->любого_из_массивов) = 3;
И как потом получить положение этого массива в sup? Например успешно выбралось значение из второго массива, как узнать что этот массив sup->1?
несколько значений тройки?
Дата: 11.03.2015 17:39:20
with t (sup) as (
   select cast('[[1,4,9],[2,3,5]]' as json)
)
select t.sup, s1.i, s2.j
from t 
cross join generate_series(0, json_array_length(t.sup)-1) s1(i)
cross join generate_series(0, json_array_length(t.sup->s1.i)-1) s2(j)
where cast((t.sup->s1.i)->>s2.j as integer) = 3
;

sup               i j
----------------- - -
[[1,4,9],[2,3,5]] 1 1
Generalproger
Дата: 11.03.2015 18:10:09
несколько значений тройки?,

Лопата, спасибо, то что надо)
лопата
Дата: 11.03.2015 18:22:05
Generalproger
несколько значений тройки?,

Лопата, спасибо, то что надо)

благодарность не по адресу

я сегодня своими тараканами занимался