1,sql server 中没有rowid の说。
2,
select ID=(select count(1) from calculatecharge where mcfid<=a.mcfid),mcfid
from
calculatecharge a
order by ID
注意 这个mcfid必须在calculatecharge 表中唯一,否则相同的mcfId会产生相同的ID。
3 ,用NewID() 可产生唯一标识,但是它产生的字段是如 5144676E-7B5D-4581-A31C-7B51223CF737
的形式。
select NewID() ,* from calculatecharge vv
4,临时表。
SELECT identity(int,1,1) as [row],a.*
INTO #C
FROM (SELECT mcfid, count(*) as number
FROM calculatecharge
group by mcfid
) a
select * form #C
drop #C
注意 1)仅当 SELECT 语句中有 INTO 子句时,才能使用 IDENTITY 函数。
2) 据子查询
SELECT mcfid, count(*) as number
FROM calculatecharge
group by mcfid
会把相同的mcfid合并一条记录,所以相同的mcfi会有相同的ID。