我想使用公用表表达式向表中添加自动递增列。
假设我们有一个表TEMP
,其中一列COL
如下:
TABLE TEMP
+---+
|COL|
+---+
|a |
+---+
|b |
+---+
|c |
+---+
|d |
+---+
|e |
+---+
|f |
+---+
|g |
+---+
|h |
+---+
是否可以将自动递增列添加到临时表中并获得以下结果?
表CTE
+---+--+
|COL|ID|
+---+--+
|a |1 |
+---+--+
|b |2 |
+---+--+
|c |3 |
+---+--+
|d |4 |
+---+--+
|e |5 |
+---+--+
|f |6 |
+---+--+
|g |7 |
+---+--+
|h |8 |
+---+--+
是否可以使用CTE制作?
答案 0 :(得分:2)
您只需要一个分析查询,例如row_number()
,它会在分区(不是必需的)内以指定的顺序返回行的序列。
select col, row_number() over ( order by col ) as id
from temp