删除重复条目但保持关系

Remove duplicate entry but keep relationship

我有一个 table 看起来像这样:

Name | Product | Total
----  --------- ------
A       Toy       
A       Car       ,000
A       Equipment 0
B       Car       0,000

等...

我想删除重复的名称条目,但保留与产品示例的关系:

Name | Product | Total
----  --------- ------
A       Toy       
        Car       ,000
        Equipment 0
B       Car       0,000

有什么想法吗?

如果你只想在 Product ='Toy' 时保留 Name 然后使用 Case 语句

Select case when Product ='Toy' then Name else '' END as Name,
       Product,
       Total
From yourtable

试试这个

WITH CTE AS (
SELECT
rownum = ROW_NUMBER() OVER (ORDER BY i.name),
i.name,i.product,i.Total
FROM yourtable i
)
SELECT
case when prev.name = cte.name
then
' '
else
cte.name
end as name,
cte.address,
cte.Total
FROM CTE
LEFT JOIN CTE prev ON prev.rownum = CTE.rownum - 1

我假设你想Name = ''因为你不能删除重复的记录。

因此您可以使用 ROW_NUMBER function inside a WITH 子句并更新 Name 字段

;WITH C AS(
    SELECT  ROW_NUMBER() OVER (PARTITION BY Name ORDER BY Name) AS Rn
            ,Name
            ,Product
            ,Total
    FROM yourTable
)
UPDATE C
SET Name = ''
WHERE Rn <> 1