0

我有一个查询

select * from a;

现在它返回我三行像

ID NAME VALUE

1   A     B

2   A     C

3   D     E

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

我怎么能这样做?

4

2 回答 2

2
SELECT
ID, 
IF(Name = @prev, 'XYZ', Name) AS Name,
Value
, @prev:=Name
FROM a
, (SELECT @prev:=NULL) var
ORDER BY ID
于 2013-06-28T09:28:56.393 回答
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
于 2013-06-28T09:24:38.967 回答