我有一个格式为(INTEGER,json_array(INTEGER))的SQL表。
我需要从具有两个布尔列的表中返回结果。如果在json_array中出现1,则将其设置为true,而在数组中出现2时,则将其设置为true。显然没有相互排斥。
例如,如果数据是这样的:
import hou
node = hou.node('obj/alembic1/alembic1')
我希望能回来:
-------------------------------
| ID | VALUES |
-------------------------------
| 12 | [1, 4, 6, 11] |
_______________________________
| 74 | [0, 1, 2, 5] |
-------------------------------
我设法使用json_each从values列中提取了json数据,但是不确定如何继续。
答案 0 :(得分:1)
如果我没记错的话,SQLite max
聚合函数支持布尔值,因此您可以简单地按数据分组:
select
t1.id,
max(case json_each.value when 1 then true else false end) as has1,
max(case json_each.value when 2 then true else false end) as has2
from
yourtable t1,
json_each(t1.values)
group by
t1.id