2014-02-12 15 views
1

我有一個像下面如何更改下表?

**ID Value1 Value2** 

11 AAAA ZZZZ 

11 A134 ZZZZ 

12 BBBB YYYY 

12 B222 YYYY 

13 CCCC XXXX 

13 A134 XXXX 

一個表,我需要的結果如下

ID值1值2

11 AAAA ZZZZ 

12 BBBB YYYY 

13 CCCC XXXX 

請幫我在這。

+0

什麼是其值被保留的邏輯是什麼?這是純粹改變從表中選擇的結果還是想要永久更改數據? –

回答

1
;with cte as 
(
select id,value1,value2,row_number() over(partition by id order by id) as rn from #t 
) 

select id,value1,value2 from cte where rn=1 

See Demo

0

,我們也可以做這種類型的獲得所需的輸出

Select * FROM (
select id,value1,value2,ROW_NUMBER()OVER (PARTITION BY ID ORDER BY Value1)AS RN from #t 

)t 
WHERE RN = 1 


oR 

Select t.ID,t.value1,t.value2 FROM #t t 
INNER JOIN (Select DISTINCT ID,value1,value2 FROM #t GROUP BY id,value1,value2)tt 
ON tt.id = t.id AND tt.value1 = t.value1 AND tt.value2 = t.value2 
ORDER BY t.value1 ASC,t.value2 ASC