2013-05-22 42 views
1

讓說,我有認爲包含以下數據SELECT DISTINCT從視圖中

Name  Image 
---- ---------- 
A   Image1 
A   Image2 
A   Image3 
B   Image4 
B   Image5 

現在,我要的是隻選擇每一行對應一個名稱,無所謂,我只想結果是例如:

Name  Image 
---- ---------- 
A   Image1 
B   Image4 

另一種情況可能是接近我需要在這裏如果我們把出售的產品每款產品都有多個圖像如何選擇只有一個圖像顯示爲一個有蓋的網站(讓說第一個)。我使用了Distinct,但它不起作用,因爲每一行都有不同的圖像。

感謝,

塔拉夏

回答

2

對於你的問題的數據,一個簡單的聚集會做:

select name, min(image) 
from t 
group by name 

如果你有多個列希望所有來自同一行表:

select t.* 
from (select t.*, 
      row_number() over (partition by name order by newid()) as seqnum 
     from t 
    ) t 
where seqnum = 1; 

row_number()函數爲所有具有相同名稱的行分配一個連續編號。 order by newid()進行隨機排序。

+0

非常感謝...這正是我需要:) – salRad