-1

我现在有一个巨大的表(超过一百万条记录),当前包含以下 2 列:CustomerNameAmountBilled

我想添加另一列,我们可以称之为它PurchaseID,这样它就CustomerName + PurchaseID成为一个唯一的组合,因此我可以创建一个主键。

例如,我的原始数据如下所示:

CustomerName AmountBilled
-------------------------    
Bill          $2
Bill          $3.5
Joe           $5

我希望我的新表如下所示:

Bill    1    $2
Bill    2    $3.5
Joe     1    $5

第二列计算在SQL.

正确的SQL说法是什么?

4

1 回答 1

2
alter table TableName
    add PurchaseID int NULL
GO
;with cte as (
  select *, rn = row_number() over (partition by CustomerName order by @@spid)
  from TableName
)
update cte set PurchaseID = rn
GO
alter table TableName
    alter column PurchaseID int not NULL
GO
于 2013-08-08T12:26:29.343 回答