TSQL - 使用游标删除重复记录

时间:2015-01-06 15:07:42

标签: sql-server tsql cursors

大家好!

我有一个包含几列的表: Part_No 检查表

任何给定的Part_No都可能有多个需要执行的检查表。

我正在尝试删除重复的Part_No,因此我的电子表格最终会显示如下:

Part_No | Checksheet
Part1   | Part1checksheet1
        | Part1checksheet2
        | Part1checksheet3
        | Part1checksheet4
Part2   | Part2checksheet1
        | Part2checksheet2
Part3   | Part3checksheet1
        | Part3checksheet2
        | Part3checksheet3

而不是这样:

Part_No | Checksheet
Part1   | Part1checksheet1
Part1   | Part1checksheet2
Part1   | Part1checksheet3
Part1   | Part1checksheet4
Part2   | Part2checksheet1
Part2   | Part2checksheet2
Part3   | Part3checksheet1
Part3   | Part3checksheet2
Part3   | Part3checksheet3

我假设我会创建一个变量并使用光标遍历每一行并检查部件号,但我不知道如何解决这个问题。

感谢任何可以提供帮助的人!

1 个答案:

答案 0 :(得分:2)

创建一个视图:

create view vw_ForExcel as (
select 
    case when row_number() over (partition by Part_No order by Part_No) = 1 then Part_No else '' end as Part_No,
    Checksheet
from THE_TABLE
)

然后导出它(或SELECT * FROM dbo.vw_ForExcel