postgresql - 如何在 psql 查询中连接 jsonb 数组中的字符串?
问题描述
我想jsonb
在我的查询中动态连接数组中的字符串,psql
如下所示:
with cte as (select generate_series(1, 3) as num) select '["name", "number"||cte.num]'::jsonb as res from cte;
但我收到此错误:
ERROR: invalid input syntax for type json
LINE 1: ...e as (select generate_series(1, 5) as num) select '["name", ...
^
DETAIL: Token "|" is invalid.
CONTEXT: JSON data, line 1: ["name", "number"|...
所以,我在这里生成从 1 到 3 的数字,我想在我的jsonb
数组中附加这些数字和“数字”字符串。这就是我想要的结果:
res
----------------------
["name", "number1"]
["name", "number2"]
["name", "number3"]
请告诉我如何得到这个。谢谢。
解决方案
像这样的东西应该工作。
SELECT ( '["name", "number'|| num ||'"]' )::jsonb as res
FROM generate_series(1, 3) num
您将管道作为字符添加到列表中的元素之后。您应该首先构建数组字符串(在括号中),然后将其转换为jsonb
.
推荐阅读
- eleventy - 使用十一输出markdown格式?
- python - 谷歌 Colab 上的 Keras 模型精度没有提高
- pandas - 使用 K-means 聚类产品组
- powershell - runspacepool 中的共享自定义对象
- java - CPU使用率和CPU使用率有什么区别?
- php - 如何修复 Drupal/mystore/vendor/composer/composer/src/Composer/DependencyResolver/Pool.php:61 中的非法偏移类型
- javascript - 如何使用纯 Javascript 的加减按钮更改数量
- python - 在删除 nans 的同时提取 panda 数据框中每一行的列表
- python - 根据另一个数据框中的日期对计算数据框中的滚动价格变化
- git - 密码弃用后从公共 PC 推送到 GitHub