如果count大于1,则替换第二个值

时间:2013-06-28 09:15:56

标签: mysql sql

我有一个查询

select * from a;

现在它返回三行,如

ID NAME VALUE

1   A     B

2   A     C

3   D     E

现在我想要的是,如果 NAME 重复,那么 XYZ 将返回而不是A

我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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