sql 生成 唯一表示 (NewID( )) ,行号。

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。

   

 

你可能感兴趣的:(sql,sql,server)