在临时公用表表达式中添加自动递增列

时间:2013-06-09 16:46:23

标签: sql sql-server

我想使用公用表表达式向表中添加自动递增列。

假设我们有一个表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制作?

1 个答案:

答案 0 :(得分:2)

您只需要一个分析查询,例如row_number(),它会在分区(不是必需的)内以指定的顺序返回行的序列。

select col, row_number() over ( order by col ) as id
  from temp