是否可以在returning子句中从Postgresql插入语句返回ID数组?

Uzair Ashraf |

我正在尝试编写一条delete语句,并且returning子句将id作为对象数组返回,如下所示:

[
{simcard_id: 1},
{simcard_id: 2},
{simcard_id: 3},
]

但我希望它返回这样的数字数组:

[1, 2, 3]

有没有办法让我的语句返回一个仅包含数字的数组?我尝试了一些聚合函数,但始终收到错误消息,说我不能在返回的语句中执行array_agg函数。我也尝试这样做:

RETURNING ARRAY[simcard_id]

但是后来变得很奇怪。

我不是sql方面的佼佼者,因此将不胜感激。

我知道我可以只映射值并返回一个数字数组,但是我想借此机会学习一下是否可以使用sql。

这是SQL查询。它使用postgres库用于nodejs。

      const simcardsIds = await sql`
      DELETE FROM simcards
      WHERE simcard_id = ANY(${sql.array(simcards)})
      RETURNING simcard_id
      `
泽德福克斯

您可以使用以下方法接近此值:

with x as (
   delete from simcards
   where simcard_id in (1,2)
   returning simcard_id
)
select array_agg(simcard_id) as y from x;

这将为您提供如下输出:

 y
-----------
 {1,2}

您可以像这样走得更远:

with x as (
    delete from simcards
    where simcard_id in (1,2)
    returning simcard_id
),
main as (select array_agg(simcard_id) as y from x)
select replace(  replace(y::text, '{', '['),   '}', ']') as out from main;

那会给你:

  out  
-------
 [1,2]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在SQL中,是否可以在插入语句中使用伪列?

来自分类Dev

在 postgresql 的 with 语句中使用从插入返回的 id

来自分类Dev

插入语句的FROM子句是否支持参数?

来自分类Dev

插入多行并结合RETURNING子句中的ID

来自分类Dev

如何检查插入语句中是否存在行,其中使用内爆和数组()插入值

来自分类Dev

您可以在postgresql的存储过程中的插入语句中的临时行上引用聚合函数吗?

来自分类Dev

在 postgresql 中插入语句

来自分类Dev

多维数组插入语句

来自分类Dev

多维数组插入语句

来自分类Dev

带输出子句的插入语句

来自分类Dev

插入语句中的SQL问号

来自分类Dev

插入语句中的SQL聚集

来自分类Dev

插入语句中的SQL问号

来自分类Dev

使用sqlite在插入语句中的位置

来自分类Dev

SQL Server可以在单个插入语句中插入的最大行数

来自分类Dev

PostgreSQL - 选择语句中的 if 子句

来自分类Dev

在插入语句中包含语句HIVE EMR AWS

来自分类Dev

从插入语句返回(自身)生成的值(无id,无返回)

来自分类Dev

Oracle SQL-带Where子句的插入语句

来自分类Dev

Postgres SQL插入语句中的语法错误

来自分类Dev

过程插入语句中不同类型的参数

来自分类Dev

Firebird插入语句中的生成器用法

来自分类Dev

如何在插入语句中使用子查询

来自分类Dev

在Slick中的插入语句中使用函数

来自分类Dev

在插入语句中重用计算列

来自分类Dev

插入语句中的语法不正确

来自分类Dev

在插入语句中将datareader值转换为整数

来自分类Dev

插入语句中缺少运算符

来自分类Dev

在插入语句中使用SQL函数