sql - 从数组中删除参数
问题描述
在这个列中有一个名为 Cars 的表,我有数组 [Audi, BMW, Toyota, ..., VW]
我想更新这个表并设置这个数组中没有几个元素的汽车(丰田,...,宝马)
我怎样才能得到它,我想放另一个数组并删除匹配的元素
解决方案
您可以取消嵌套数组、过滤和重新聚合:
select t.*,
(select array_agg(car)
from unnest(t.cars) car
where car not in ( . . . )
) new_cars
from t;
如果要保留原始顺序:
select t.*,
(select array_agg(u.car order by n)
from unnest(t.cars) with ordinality u(car, n)
where u.car not in ( . . . )
) new_cars
from t
推荐阅读
- microsoft-graph-api - 哪个图形 API 应与 Azure AD B2C 一起使用?
- ruby - 如何使用 Ruby 的更新版本?
- javascript - 在 Firestore 上添加数据
- laravel - 在 laravel 中删除或获取具有特定名称标签的所有数据
- python - 打印链接到列表中键的字典值
- python - 网页抓取获取下拉菜单数据python
- selenium - Selenium 无效上下文
- python-3.x - 如何使用字符串常量和数字(计数)更新 pandas 列
- java - 启用缺少的 Proguard 优化
- java - 用户可以添加/删除列的情况