sql - MySQL 中正确的 sql 查询

标签 sql mysql

我有这样的表:

Name   Result  
T1     fail  
T2     pass  
T3     pass  
T2     fail  
T4     fail  
T1     pass  
T4     fail

现在,我想得到这样的结果:

Name   Result
T1     pass
T2     pass
T3     pass
T4     fail

我试过使用这样的查询,但它不起作用。

select (case when Result = "pass" then "pass" else "fail" end) as Final_verdict,    
Name from table_1 group by Name

谁能告诉我我错过了什么?

最佳答案

编辑

尝试以下操作:

SELECT Name, MAX(Result) As Result
FROM table_1
GROUP BY Name

每当一行有一个通过的记录时,这应该返回 pass,因为 pass 按字典顺序在 fail 之后。


使用 else 而不是第二个 then,并在 case 的末尾使用 end。< br/> 您可能还必须使用单引号。

select (case when Result = 'pass' then 'pass' then 'fail' end) as Final_verdict,
       Name
from table_1

当同一个名字有不同的结果时,你预计会发生什么?

关于sql - MySQL 中正确的 sql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2295946/

相关文章:

php - 在 PHP 脚本中删除双引号的 SQL 查询不起作用

php - 找不到类 PDO - 刚刚升级到 PHP 5.6 (Debian Wheezy)

sql - PostgreSQL 条件 where 子句

mysql - 如何遍历 SQL 查询并在每次迭代期间更改一个参数

php - 如何从一个 MYSQL 数据库中选择并将其插入到另一个数据库中?

php - 如何在 mysqli 准备语句中使用多个内部连接和多个 WHERE 子句?

mysql - 带有可定制 View 的 Sql Join

java - 远程连接工作时无法在本地从 java 连接到 mysql

MySQL:如何在另一个 INSERT 中使用一个 INSERT 的结果

php - 面向 PHP 开发人员的 PostgreSQL 和 MySQL 之间的差异