SQL case 多条件问题
本文介绍了SQL case 多条件问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
SELECT
COUNT(id),
CASE
WHEN datetime > '2017-08-22 17:03:00' THEN 1
WHEN datetime > '2017-08-20 17:03:00' THEN 3
WHEN datetime > '2017-08-16 17:03:00' THEN 7
WHEN datetime > '2017-08-30 17:03:00' THEN 30
ELSE 0 END AS date
FROM
source
GROUP BY
date
ORDER BY datetime
case函数只返回第一个符合条件的值,剩下的case部分将会被忽略
但是我希望查询结果包括所有case条件为true的计数,这样的sql怎么写,求问
比如说20号的记录在这段SQL里面遇到第二个case为true后就执行退出了,但我希望在3,7,30这三个case中都执行一遍,也就是说20号的数据在3,7,10这三个结果列中都会进一遍计数
解决方案
一个case when不可能的,照你这么干岂不是把一条记录变成了好几条记录?无中生有啊你这是!
一条记录判断多次生成多个结果你就需要扫描多次才行,这时候你就需要多次case when,
是
select
case when then else end,
case when then else end
from table;
这样子就可以了
不过这样你后面的group by就不能这么玩了
这篇关于SQL case 多条件问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文