如何删除SQL Server中的重复项

时间:2015-05-29 19:18:26

标签: sql-server

我的数据如下:

Order No.  Name    Date   Unit Price  Freight
001        ABC     1-16    232         25
001        ABC     1-16    55          25
001        ABC     1-16    156         25
002        DEF     2-5     478         16
002        DEF     2-5     356         16

我试图让运费仅在我的表格中显示一次,结果如下:

Order No.  Name    Date   Unit Price  Freight
001        ABC     1-16    232         25
001        ABC     1-16    55          0
001        ABC     1-16    156         0
002        DEF     2-5     478         16
002        DEF     2-5     356         0

请帮我解决这个问题

1 个答案:

答案 0 :(得分:2)

以下是获取所需内容的查询:

SELECT 
    order_no, name, theDate, unit_price, 
    case 
        when row_number() OVER (PARTITION by order_no ORDER BY order_no) = 1 then freight
        else 0 
    end as freight
from yourTable

这会查看每个订单号的所有行并提供行号。如果它是该订单的第1行,则使用货运列的值,否则使用0。

请注意,我假设相同订单编号的所有行的运费值相同。