2013-06-28 27 views
0

我有一個查詢更換第二值,如果計數大於一個

select * from a; 

現在返回我三行像

ID NAME VALUE 

1 A  B 

2 A  C 

3 D  E 

現在我想的是,如果NAME重複然後XYZ將返回而不是A

我該怎麼做?

+0

什麼是理想的結果的工作生活? 'A ... XYZ ... D'或'XYZ ... XYZ ... D'? – fancyPants

+0

期望的結果是A ... XYZ ... D –

回答

2
SELECT 
ID, 
IF(Name = @prev, 'XYZ', Name) AS Name, 
Value 
, @prev:=Name 
FROM a 
, (SELECT @prev:=NULL) var 
ORDER BY ID 
0

如果我正確理解你的問題,然後嘗試

SELECT t1.id, 
     CASE 
     WHEN t1.c > 1 THEN 'xyz' 
     ELSE name AS n, 
     t1.value 
FROM 
(
SELECT id,name,count(name) c,value 
FROM a 
GROUP BY name 
) t1 
相關問題