删除sql 14

时间:2016-07-21 10:45:41

标签: sql-server

我有一个包含3列的表格,第一列是' name'。有些名字输入两次,有的是3次,有的则多一些。我想为每个名称只保留一个值并删除额外的行。 没有主键或id列。 表中有大约100万行。 想在SQL 14中使用一个查询(最好)删除。有人可以帮忙吗?

Name    column2 column3
Suzy        
Suzy        
Suzy        
John        
John        
George      
George      
George      
George      

想把它作为:

Name    column2 column3
Suzy        
John        
George  

非常感谢提前

1 个答案:

答案 0 :(得分:2)

你可以使用row_number函数,试试这个,

WITH CTE
AS (
    SELECT NAME
        ,column2
        ,column3
        ,RN = ROW_NUMBER() OVER (
            PARTITION BY NAME ORDER BY NAME
            )
    FROM < YourTableName >
    )
DELETE
FROM CTE
WHERE RN > 1