简体   繁体   English

使用SQL Server 2008 R2区分两列

[英]Distinct for two columns using SQL Server 2008 R2

I have a select query as shown below: 我有一个选择查询,如下所示:

 select cola,colb,colc,cold,cole,colf,colg,colh,coli,colj,colk
 from test
 where cola in (select colb from test);

How can I get only distinct cola and colb from different columns? 我怎样才能获得唯一不同的colacolb不同列?

My try: 我的尝试:

 select Distinct cola,colb,colc,cold,cole,colf,colg,colh,coli,colj,colk
 from test
 where cola in (select distinct colb from test);

You could use ROW_NUMBER with a CTE : 您可以将ROW_NUMBERCTE一起使用:

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

This selects arbitrary rows for every cola, colb combination. 这为每种可乐,玉米棒组合选择任意行。 If you want to fine-tune it change ORDER BY cola to something more meaningful. 如果您想对其进行微调,请将ORDER BY cola更改为更有意义的内容。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM