主要函数unnest
unnest:将数组转为临时表,例子如下
select unnest(Array[1,2,3]) as a;
a
---
1
2
3
(3 rows)
现有复合类型数组字段的表如下
复合类型如下
表关系结构为:一个地方有多个不同语言的名字,既有英文名也有中文名
select guid,name
from (
select b.guid, (unnest(b.复合类型数组字段)).name as name
from 表1 a
left join 表2 b on a.meta_guid = b.guid
) c
where name like '%名字2%'
查询结果如下
根据复合类型集合中的一个字段名来查该行数据
select *
from 表1
where EXISTS(
SELECT name from unnest(表1的复合类型集合字段)
where name = '名字1'
)
结果如下