PostgreSQL能否按顺序使用FOR循环?

PostgreSQL能否按顺序使用FOR循环?,sql,arrays,postgresql,for-loop,sql-order-by,Sql,Arrays,Postgresql,For Loop,Sql Order By,我可以这样做SQL语句吗 SELECT ARRAY[array] FROM table1 ORDER BY FOR i in array_length(array,1) LOOP array[i]::numeric END LOOP; 我想要的结果是: SELECT ARRAY[array] FROM table1 ORDER BY array[

我可以这样做SQL语句吗

    SELECT     
        ARRAY[array]
    FROM   table1
    ORDER BY 
       FOR i in array_length(array,1) LOOP 
                array[i]::numeric
            END LOOP; 
我想要的结果是:

SELECT     
   ARRAY[array]
FROM   table1
ORDER BY array[1]::numeric, array[2]::numeric, ...

我可以吗?:)

否,SQL中没有
循环。不过,它是PL/pgSQL等过程语言的一个元素。见:

但是有一种更简单的方法:

SELECT ...
FROM   table1
ORDER  BY array_column::numeric[];
数组值按元素值从左到右进行排序

要求:

  • 数组\u列
    必须是具有已注册转换为
    数值
    的元素类型的数组。例如
    text
    varchar
    或其他一些。 否则,您可以使用
    text[]
    作为垫脚石:
    array\u column::text[]:numeric[]

  • 每个元素都可以投影为合法的
    数值


  • 否,SQL中没有
    循环。不过,它是PL/pgSQL等过程语言的一个元素。见:

    但是有一种更简单的方法:

    SELECT ...
    FROM   table1
    ORDER  BY array_column::numeric[];
    
    数组值按元素值从左到右进行排序

    要求:

  • 数组\u列
    必须是具有已注册转换为
    数值
    的元素类型的数组。例如
    text
    varchar
    或其他一些。 否则,您可以使用
    text[]
    作为垫脚石:
    array\u column::text[]:numeric[]

  • 每个元素都可以投影为合法的
    数值


  • 哦很抱歉,我不能,但谢谢你哦很抱歉,我不能,但谢谢你