Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server重复项-删除值_Sql_Sql Server - Fatal编程技术网

SQL Server重复项-删除值

SQL Server重复项-删除值,sql,sql-server,Sql,Sql Server,我一直在疯狂地尝试从我的SQL Server数据库中删除重复的值。一次查询有效,然后它就无效了。据推测,此查询删除了DUP,但在查询时却没有。以下是表格结构: CREATE TABLE [dbo].[Location]( [ID] [int] NOT NULL, [FullName] [nvarchar](255) NULL, [BarCode] [nvarchar](255) NULL, [Alias] [nvarchar](255) NULL, [St

我一直在疯狂地尝试从我的SQL Server数据库中删除重复的值。一次查询有效,然后它就无效了。据推测,此查询删除了DUP,但在查询时却没有。以下是表格结构:

CREATE TABLE [dbo].[Location](
    [ID] [int] NOT NULL,
    [FullName] [nvarchar](255) NULL,
    [BarCode] [nvarchar](255) NULL,
    [Alias] [nvarchar](255) NULL,
    [StreetAddress] [nvarchar](255) NULL,
    [City] [nvarchar](255) NULL,
    [State] [nvarchar](255) NULL,
    [ZipCode] [nvarchar](255) NULL,
    [ArchiveDate] [datetime] NULL DEFAULT (getdate()),
PRIMARY KEY CLUSTERED 
(
    [ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
这是我用来删除重复项的查询:

WITH CTE([FullName], 
        [BarCode],
        [Alias],
        [StreetAddress],
        [City],
        [State],
        [ZipCode],
      --    [ArchiveDate],   
    DuplicateCount)
AS (SELECT [FullName], 
           [BarCode],
           [Alias],
           [StreetAddress],
           [City],
           [State],
           [ZipCode],
          -- [ArchiveDate],
           ROW_NUMBER() OVER(PARTITION BY [FullName], 
                            [BarCode],
                        [Alias],`enter code here`
                        [StreetAddress],
                        [City],
                        [State],
                        [ZipCode]
                        --[ArchiveDate]                           
                                        
           ORDER BY ID) AS DuplicateCount
    FROM [TelusArchive].[dbo].[Location])
DELETE FROM CTE
WHERE DuplicateCount > 1;
它不是删除重复项。我做错了什么


谢谢你的帮助……

你的问题表明,你认为是重复的东西都不是。我将从以下问题开始:

SELECT [FullName], [BarCode], [Alias], [StreetAddress], [City], [State], [ZipCode], COUNT(*)
FROM location
GROUP BY [FullName], [BarCode], [Alias], [StreetAddress], [City], [State], [ZipCode]
HAVING COUNT(*) > 1
根据您的问题,这应该不会返回任何行

那么,问题出在哪里还不清楚——如果你真的认为有重复的话


我建议每次删除一列,直到您开始获得重复的列。然后可以调查列中的值。常见的罪魁祸首是外观相同但不相同的字符串,例如,由于空格或字符外观相同但不同。

您的查询会删除中的重复项。