1

我是 Oracle DB 的新手...

我有一个包含 2 个字段的表,即 YEAR 和 MAINT_CODE。

我必须编写一个报告查询,它将在报告中呈现以下内容:

 ACTION  | YEAR | MAINT_CODE
--------------------------
Action 1 | 2012 | 0123
Action 2 | 2012 | 0122
Action 3 | 2013 | 0122

现在,我没有 Action 字段,Action 之后的这个数字必须增加。我根本无法改变桌子。

我当前的查询如下所示:

SELECT YEAR, MAINT_CODE
FROM mytable

我怎样才能在行动之后获得那个递增的价值?我什至不知道去哪里找——我已经研究过测序,但我不确定这就是我需要的。有任何想法吗?

4

1 回答 1

6
SELECT 'Action '||to_char(row_number() over (order by year, maint_code)) as action,
       YEAR, 
       MAINT_CODE
FROM mytable
order by year, maint_code

你必须有一个顺序,否则“序列”没有意义,这就是为什么我应用一个order by year, maint_code来生成row_number()并使用相同的排序定义对整体结果进行排序。

于 2013-04-08T14:17:28.260 回答