【问题标题】:Sorting a bigint[] column in PostgreSQL在 PostgreSQL 中对 bigint[] 列进行排序
【发布时间】:2020-09-28 22:18:14
【问题描述】:

我有一个表,其中有一个 bigint[] 未排序的 bigint 列。似乎没有像 intarray 扩展那样的 bigintarray 扩展。

我正在尝试编写一个简单的 UPDATE 查询,该查询将更新所有列并按 ASC 排序值,并且一直在干涸。唉,我问世界。

当前

id | my_big_int_column

1  | {22222222222222222, 11111111111111111}

预计更新后

id | my_big_int_column

1  | {11111111111111111, 22222222222222222}

感谢任何提示将不胜感激!

【问题讨论】:

  • 那么这个列的数据类型是什么,是bigint[]吗?
  • 是的,该列属于 bigint[] 类型。

标签: arrays postgresql sql-update biginteger unnest


【解决方案1】:

考虑一个取消嵌套数组并以正确顺序将其聚合回来的子查询:

update mytable
set my_big_int_column = (
    select array_agg(val order by val) 
    from unnest(my_big_int_column) as v(val)
)

Demo on DB Fiddlde

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-10
    • 2015-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-02
    • 2013-10-12
    相关资源
    最近更新 更多