我在某些列中使用 select ,请参阅以下示例
select 55,5,8,3
,结果将是
那么,如何将其转换为行并获取每个的row_number?如下所示
row.number | col_val
------------+--------
1 55
2 5
3 8
4 3
答案 0 :(得分:1)
select *,
row_number() over ()
from unnest(array[55,5,8,3]);
虽然不是保证订单总是相同的(但实际上是这样)。
使用即将推出的9.4版本,您可以使用with ordinality
选项获得稳定的行号:http://www.postgresql.org/docs/9.4/static/queries-table-expressions.html#QUERIES-TABLEFUNCTIONS
答案 1 :(得分:0)
为此目的a_horse_with_no_name's answer 就够了
或尝试这样的事情
select row_number() over() row_num,col_val from (
select unnest((
select array[c1,c2,c3,c4] from (
select 55 c1,5 c2 ,8 c3,3 c4 )s
)) as col_val) b