使用SQL Server 2008 R2对两列进行区分

使用SQL Server 2008 R2对两列进行区分,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我有一个select查询,如下所示: select cola,colb,colc,cold,cole,colf,colg,colh,coli,colj,colk from test where cola in (select colb from test); 如何从不同的列中仅获取不同的cola和colb 我的尝试: select Distinct cola,colb,colc,cold,cole,colf,colg,colh,coli,colj,colk from test wh

我有一个select查询,如下所示:

 select cola,colb,colc,cold,cole,colf,colg,colh,coli,colj,colk
 from test
 where cola in (select colb from test);
如何从不同的列中仅获取不同的
cola
colb

我的尝试:

 select Distinct cola,colb,colc,cold,cole,colf,colg,colh,coli,colj,colk
 from test
 where cola in (select distinct colb from test);
您可以使用:

这将为每个cola、colb组合选择任意行。如果您想对其进行微调,请将“按可乐订购”更改为更有意义的内容

WITH CTE AS
(
 select cola,colb,colc,cold,cole,colf,colg,colh,coli,colj,colk,
        rn = ROW_NUMBER() OVER (PARTITION BY cola, colb ORDER BY cola)
 from test
 where cola in (select colb from test)
)
SELECT  cola,colb,colc,cold,cole,colf,colg,colh,coli,colj,colk
FROM CTE
WHERE rn = 1