postgresql 字符串数组求交集
时间: 2024-02-11 20:01:19 浏览: 160
求两个数组的交集
可以使用PostgreSQL中的`&&`操作符来获取两个数组的交集。具体操作如下:
假设我们有两个字符串数组`{'apple', 'banana', 'orange'}`和`{'banana', 'pear', 'grape'}`,我们可以使用以下语句来获取它们的交集:
```sql
SELECT ARRAY(SELECT UNNEST('{apple,banana,orange}'::text[]) INTERSECT SELECT UNNEST('{banana,pear,grape}'::text[]));
```
其中,`UNNEST`函数用于将数组展开成一列,`INTERSECT`操作符用于获取两个集合的交集,`ARRAY`函数用于将结果重新组合成一个数组。
如果我们想要去除交集,可以使用`EXCEPT`操作符,具体操作如下:
```sql
SELECT ARRAY(SELECT UNNEST('{apple,banana,orange}'::text[]) EXCEPT SELECT UNNEST('{banana,pear,grape}'::text[]));
```
其中,`EXCEPT`操作符用于获取两个集合的差集。
阅读全文