mysql - 根据重复列返回值

标签 mysql sql replace duplicates

Table:    
firstname  |   lastname   |  age      
Joey       |   Sanchez    |  33   
Joey       |   Sanchez    |  33   
Rachel     |   Dudok      |  28

我正在尝试创建一个 MySQL select 语句,当 2 列重复时,该语句在年龄列中返回值“错误

我尝试了 Case 语句,但它最终只返回 1 行。

 SELECT 
 Firstname,
 Lastname,
 CASE
    WHEN count(firstname) AND count(lastname) AND count(age) >= 2 
     THEN '**ERROR**'
     ELSE age
 END
 FROM Table;

最佳答案

您可以尝试使用分组依据:

 select Firstname
      , Lastname
      , case when count(*) > 1 then '**ERROR**' else age end
 from Table
 group by  Firstname
         , Lastname
         , age;

或者如果您想返回所有包含重复项的行:

 select t.Firstname
      , t.Lastname
      , case when (select count(*)
                   from Table
                   where Firstname = t.Firstname and
                         Lastname = t.Lastname and
                         age = t.age) > 1 then '**ERROR**' else age
         end
 from Table t

关于mysql - 根据重复列返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30876878/

相关文章:

sql - Select * form DynamicValue 是否可以在 Navision 中执行这样的查询?

mysql - 如何验证夜类员工的日志日期时间

python - 正则表达式替换正则表达式

MYSQL更新表查询

mysql - 在 iReport 中使用多个表格

sql - 如何使用数据库来管理信号量?

javascript - 用特殊字符替换子字符串

MySQL:为什么我的索引长度是 0.0 字节?

php - mysql触发器限制id列插入的行数

javascript - 用正则表达式替换选择索引属性