【问题标题】:PostgreSQL cast array to two-dimensionalPostgreSQL 将数组转换为二维
【发布时间】:2015-12-29 02:21:48
【问题描述】:

我是PostgreSQL 的新手,我使用array 输入PostgreSQL

WITH intarr AS (
    SELECT
        ARRAY [ s.days,s.hours ] ::int[] AS arr
    FROM summary s
    WHERE s.hours != 2
)
SELECT ARRAY(SELECT * from intarr );

我收到此错误:

[Err] 错误:找不到数据类型整数[]的数组类型

我想办法改变

ARRAY [ s.days,s.hours ] ::int[] AS arr 

行到这个

ARRAY [ s.days,s.hours ] ::varchar AS arr

我得到如下结果:{"{1,3}","{2,3}"}。但我需要结果int[][] 类型。我如何将one-dimensional array 转换为two-dimensional array

【问题讨论】:

  • 我做到了,但我不知道它是不是很好的解决方案? SELECT replace( (SELECT ARRAY(SELECT arr from intarr)::VARCHAR), '"', '')::int[][]

标签: sql arrays postgresql multidimensional-array casting


【解决方案1】:

我现在使用它,我认为它不是完美的方式。

WITH intarr AS (
    SELECT
        ARRAY [ s.days,s.hours ] ::VARCHAR AS arr
    FROM
        summary s
    WHERE
        s.hours != 2
)
SELECT replace((SELECT ARRAY(SELECT arr from intarr)::VARCHAR), '"', '')::int[][]

【讨论】:

    猜你喜欢
    • 2019-01-23
    • 2020-03-26
    • 2012-08-15
    • 2021-01-31
    • 2016-02-18
    • 2018-02-19
    相关资源
    最近更新 更多