2016-02-25 78 views
-3

我有喜欢的表值在混乱的秩序价值的重复组合如下:如何编写查询来查找在SQL Server表

ID  Column1  
101  a  
101  b  
101  c  
102  aa 
102  bb 
102  cc  
103  b 
103  a  
103  c 
104  cc 
104  aa 
104  bb 
105  c 
105  a 
105  b 

如何编写SQL查询,显示结果如下图所示

ID column1  
101 a  
101 b  
101 c   
102 aa  
102 bb  
102 cc  
+0

你尝试过什么?例如ORDER BY&DISTINCT?你可以显示你想要的确切输出,因为你不清楚你正在谈论哪个重复的组合 – Dijkgraaf

+0

@Dijkgraaf,请看上面的表Column1有一个bc,具有相同的id,即101,并且bc在不同行中被重复为b a c和c a b。所以我想编写sql查询来显示混乱的组合。 – chakri

+0

那么你只需要列1中的不同值?你想显示ID吗?如果是这样的话?如果你有多于一行的同一列1,最低的一个? – Dijkgraaf

回答

0

如果按column1进行分组,它将消除任何重复。但是,为了显示ID,您需要某种集合函数(如MIN或MAX)来显示,否则会出现错误。

SELECT MIN(ID) as ID, column1 
GROUP BY column1 
ORDER BY column1 

应导致

ID column1 
101 a 
101 b 
101 c 
102 aa 
102 bb  
102 cc 
+0

您的查询无法正常显示不同的输出,而不是如上所示。 – chakri

+0

我想确切的输出,我给。 – chakri

+0

不,你说你想删除重复的组合,并没有给出最终的输出。 – Dijkgraaf

0

还有就是要做到这一点的方法不止一种,但因为这个问题是有点含糊,很难确定从这个确切的要求,但这里有几个选项:

为了用最小的ID,然后在通过COLUMN1字母

SELECT MIN(ID) as ID, column1 
GROUP BY column1 
ORDER BY MIN (ID), column1 

排序列1的长度,然后按字母顺序COLUMN1

SELECT MIN(ID) as ID, column1 
GROUP BY column1 
ORDER BY LEN (column1), column1 
+0

不匹配,我想要精确输出我正在显示的内容 – chakri

+0

What's not working about it?我有这两个输出正是你上面的,如果LEN不工作尝试LENGTH? –