簡體   English   中英

如何在SQL Server 2005中更新非重復列?

[英]How to update distinct column in SQL Server 2005?

在我的表格中,我有一列Segment_No ,其中有重復項。 現在,我想更新那些重復項。

表

例如: 249X5601值出現在兩行中。 我想將第二個值更改為249X5601R

一般形式如下:

;with AllRows as (
    select Donation_ID,Registration_No,Segment_No,
           ROW_NUMBER() OVER (
               PARTITION BY Segment_No
               order by <Suitable_Column>
           ) as rn
    from UnnamedTable
)
update AllRows set Segment_no = <New_Value>
where rn > 1

<Suitable_Column>給出列的地方,定義哪一行是“第一”,哪一行是第二。 <New_Value>定義應如何計算新的Segment_no值,並且rnSegment_no號-因此where子句將忽略“第一”行。

因此,如果最多只有兩行共享一個Segment_no值,並且“第一個”是Donation_ID值最低的行,那么它將是:

;with AllRows as (
    select Donation_ID,Registration_No,Segment_No,
           ROW_NUMBER() OVER (
               PARTITION BY Segment_No
               order by Donation_ID
           ) as rn
    from UnnamedTable
)
update AllRows set Segment_no = Segment_no + 'R'
where rn > 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM