我有这个查询:
#create table #tmp_table( n_progressive int , name char(10),
id_numeric(11,0) )
declare @i int = 0 declare @c int declare n_progressive int = 0
declare @var_table table ( name char(10), id_number numeric(11,0) )
insert into @var_table( name, id_number ) select name,id_number from MainTable
select @c= count (*) from @var_table
while(@i<@c) begin set @n_progressive = @n_progressive + 1
insert into #Tmptable( n_progressive , name , id_numeric ) select @n_progressive ,name,id_numeric from @var_table
end
var_table 中的记录是 4。对于每条记录,我希望 n_progressive 增加 +1。
上面查询的结果是这样的:
+--------------+----------+------------+
|n_progressive | name | numeric_id |
+--------------+----------+------------+
|1 | RM1 | 1 |
|1 | RM2 | 2 |
|1 | RM3 | 3 |
|1 | RM4 | 4 |
|2 | RM1 | 1 |
|2 | RM2 | 2 |
|2 | RM3 | 3 |
|2 | RM4 | 4 |
|3 | RM1 | 1 |
|3 | RM2 | 2 |
|3 | RM3 | 3 |
|3 | RM4 | 4 |
|4 | RM1 | 1 |
|4 | RM2 | 2 |
|4 | RM3 | 3 |
|4 | RM4 | 4 |
+--------------+----------+------------+
我想要的是这个:
+---------------+----------+-------------+
|n_progressive | name | numeric_id |
+---------------+----------+-------------+
|1 | RM1 | 1 |
|2 | RM2 | 2 |
|3 | RM3 | 3 |
|4 | RM4 | 4 |
+---------------+----------+-------------+
我不想使用光标。