如果那时,我该如何使用mysql case?

时间:2019-02-12 04:28:29

标签: mysql case

获取状态和计数数据的查询。 以前,如果条件为2或更大,则then声明, 计数由2统一。(状态值为0到4。)

我想修改大于等于2的值,以便仅按工作ID获得最新注册日期的数据数量。

有没有办法调节ELSE?

这是mysql查询代码:

SELECT A.STATUS, TE.COUNT FROM 
	 	(SELECT 0 AS STATUS UNION ALL  SELECT 1 UNION ALL  SELECT 2) A
		LEFT JOIN (
			SELECT STATUS  , COUNT(*) AS COUNT
  			FROM (
       				SELECT CASE WHEN STATUS < 2  THEN STATUS  ELSE 2  END AS STATUS
              FROM tb_exe
              WHERE reg_dt >= curdate()
             ) TE
  	GROUP BY STATUS
		) TE ON A.STATUS = TE.STATUS;
		

表结构: enter image description here

1 个答案:

答案 0 :(得分:0)

是的, 您可以采用梯形格式的 CASE WHEN 。像 IF,ELSE IF,.... ELSE END 。 例如,

SELECT CASE WHEN STATUS < 2  THEN STATUS 
            WHEN ? THEN  ?
            ...
            ELSE 2  
       END AS STATUS
FROM tb_exe

您不能在 ELSE 中写条件。但是您可以忽略else语句。我的意思是不需要写 ELSE ,如果不需要,则可以以 END 结尾。