tsql-返回重复的行id';他在一排
我已在表中识别出“重复记录”。虽然我声称它们是重复的,但PK是一个标识列-因此它们不是真正的重复(但基于其他列-它们是) 我目前在一个表格中有以下格式的数据:tsql-返回重复的行id';他在一排,sql,sql-server,Sql,Sql Server,我已在表中识别出“重复记录”。虽然我声称它们是重复的,但PK是一个标识列-因此它们不是真正的重复(但基于其他列-它们是) 我目前在一个表格中有以下格式的数据: ID -> identity column Row -> indicates the sequential row number RowNumber -> indicates that two of the rows are identical 例如: ID Row RowNumber 500
ID -> identity column
Row -> indicates the sequential row number
RowNumber -> indicates that two of the rows are identical
例如:
ID Row RowNumber
500 1 1000
501 2 1000
305 1 1050
306 2 1050
我只想为每一行号返回一行中的ID
例如,上述结果集为:
500 501
305 306
有什么建议吗 单向,使用
行号
和:
如果要删除重复项,请用替换选择
DELETE FROM CTE WHERE RN > 1
案例
语句有效:
SELECT
RowNumber,
MAX(CASE WHEN "Row" = 1 THEN ID ELSE NULL END) AS "1",
MAX(CASE WHEN "Row" = 2 THEN ID ELSE NULL END) AS "2"
FROM #Table
GROUP BY RowNumber
那么,这些是应该出现在单独的列中,还是一列之间有空格?行
的最大值是多少?是否只有两个重复项,或者是否有多个重复项,因此结果将是多个列?它们应该是两个单独的列。
CREATE TABLE #Table
(
ID INT,
"Row" INT,
RowNumber INT
)
INSERT INTO #Table
VALUES
(500,1,1000),
(501,2,1000),
(305,1,1050),
(306,2,1050)
SELECT
RowNumber,
MAX(CASE WHEN "Row" = 1 THEN ID ELSE NULL END) AS "1",
MAX(CASE WHEN "Row" = 2 THEN ID ELSE NULL END) AS "2"
FROM #Table
GROUP BY RowNumber
SELECT
RowNumber,
"1",
"2"
FROM
(SELECT "Row",ID, RowNumber FROM #Table) AS SourceTable
PIVOT
(
MAX(ID)
FOR "Row" IN ("1","2")
) AS PivotTable