如果 mysql 中的整个列值不同,则应返回单个列值

  • 本文关键字:单个列 返回 如果 mysql mysql
  • 更新时间 :
  • 英文 :


>我有这样的表格:

+------+
|Status|
+------+
|2     |
+------+
|1     |
+------+
|2     |
+------+
|2     |
+------+
|2     |
+------+

在此表中,名为状态的列有一个不同的值,即 1,因此它应该向我返回一个值为 PENDING 的单列状态,如果所有状态值均为 2,那么它应该返回具有一个值的单列状态

已完成

输出应如下所示

 +------+
|Status |
+------ +
|Pending|
+-------+

检查不同状态(不包括 1(的数量不大于 0:

SELECT CASE WHEN COUNT(*) > 0 THEN 'PENDING' ELSE 'COMPLETED' END AS 'Status' FROM (
    SELECT DISTINCT status FROM yourtable WHERE status != 1
) a;
SELECT CASE WHEN COUNT(*) >1 THEN 'PENDING' ELSE 'COMPLETED' END  FROM
(
 SELECT Status FROM TABLENAME GROUP BY Status
)Z

尝试上面的查询。

希望这会有所帮助。

由于您已经给出了数据集中唯一的两个可能值是 1 和 2,因此您可以运行以下查询来获得所需的结果。

注意:我在这里假设 2s 表示已完成的值,1s 表示待处理的值。因此,所有行的总和应等于"no"。的行 x 2 如果全部完成。否则,这意味着存在不匹配的值(即 1(

SELECT
    CASE
        WHEN count(status) * 2 = SUM(status) THEN 'COMPLETED'
        ELSE 'PENDING'
    END AS status
FROM my_table;
我想

下面的查询可能会对您有所帮助:-

select 
CASE WHEN count(*) = 0 then 'COMPLETED'
ELSE 'PENDING' END
from testing where status in ('1');

最新更新