2016-02-25 73 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? –