Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.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 使用TSQL将列映射到其ID_Sql Server_Tsql - Fatal编程技术网

Sql server 使用TSQL将列映射到其ID

Sql server 使用TSQL将列映射到其ID,sql-server,tsql,Sql Server,Tsql,我有一个查询,它获取表中的重复记录。见下文: SELECT column1, column2 FROM table1 GROUP BY column1, column2 HAVING COUNT(column1 + column2) > 1 现在,我需要将column1和column2映射到它的表ID,我无法将其合并到上面的查询中。我正在使用TSQL,我该怎么做?此代码用于获取ID: SELECT Id FROM table1 INNER JOIN ( SELECT colu

我有一个查询,它获取表中的重复记录。见下文:

SELECT column1, column2
FROM table1
GROUP BY  column1, column2
HAVING COUNT(column1 +  column2) > 1

现在,我需要将column1和column2映射到它的表ID,我无法将其合并到上面的查询中。我正在使用TSQL,我该怎么做?

此代码用于获取ID:

SELECT Id FROM table1 INNER JOIN
(
    SELECT column1, column2
    FROM table1
    GROUP BY  column1, column2
    HAVING COUNT(column1 +  column2) > 1
) thisTable
ON
table1.column1= thisTable.column1AND 
table1.column2= thisTable.column2

您可以使用
count
窗口聚合查找重复的
(第1列、第2列)
对及其ID:

declare @table table (id int, column1 varchar(10), column2 varchar(10))

insert into @table values
(1, 'A', 'B')
,(2, 'C', 'D')
,(3, 'A', 'C')
,(4, 'B', 'D')
,(5, 'C', 'A')
,(6, 'D', 'B')
,(7, 'A', 'B')


;with a as (
    select id, column1, column2,
        cnt = count(id) over (partition by column1, column2)
    from @table
)
select id, column1, column2
from a
where cnt > 1
结果:

id          column1    column2
----------- ---------- ----------
1           A          B
7           A          B

表ID是什么?请共享表结构和其他相关详细信息。表ID是唯一标识符或主键。