Sql server 忽略重复项,不要删除它们
我已经知道如何删除Sql server 忽略重复项,不要删除它们,sql-server,tsql,duplicates,Sql Server,Tsql,Duplicates,我已经知道如何删除Id列上的重复行。但我不允许删除服务器上的任何内容。我需要的是一个WITH语句,它忽略重复的行(只取其中一行)。有没有一种方法可以在不修改表中数据的情况下执行此操作 p.S.1所有重复的行都是相同的。因此,没有必要决定保留哪一个 p.S.2我不希望创建额外的临时表(SELECT*INTO…)您可以使用一个CTE,它在所有列上执行SELECTDISTINCT: WITH cte AS ( SELECT DISTINCT Id, col1, col2, ..., colN
Id
列上的重复行。但我不允许删除服务器上的任何内容。我需要的是一个WITH
语句,它忽略重复的行(只取其中一行)。有没有一种方法可以在不修改表中数据的情况下执行此操作
p.S.1所有重复的行都是相同的。因此,没有必要决定保留哪一个
p.S.2我不希望创建额外的临时表(
SELECT*INTO…
)您可以使用一个CTE,它在所有列上执行SELECTDISTINCT
:
WITH cte AS (
SELECT DISTINCT Id, col1, col2, ..., colN
FROM yourTable
)
WITH cte AS (
SELECT Id, col1, col2, ..., colN
FROM yourTable
GROUP BY Id, col1, col2, ..., colN
)
您还可以在所有列上使用groupby
来实现这一点:
WITH cte AS (
SELECT DISTINCT Id, col1, col2, ..., colN
FROM yourTable
)
WITH cte AS (
SELECT Id, col1, col2, ..., colN
FROM yourTable
GROUP BY Id, col1, col2, ..., colN
)
如果Id
值不重复,但所有其他列都重复,则可以尝试:
WITH cte AS (
SELECT MIN(Id) AS Id, col1, col2, ..., colN
FROM yourTable
GROUP BY col1, col2, ..., colN
)
请选择表架构?@Arion任何在
Id
列上有重复值的表。我会立即尝试并返回给您。谢谢@DisasterkidId
值是唯一的,还是重复的?@TimBiegeleisen整行都是重复的。这意味着也有重复的Id
s。@Disasterkid然后选择我给你的第一个或第二个选项。谢谢@TimBiegeleisen!暂时无法访问服务器。我一进去就会查。