2019-03-16
阅读量:
625
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;






评论(0)


暂无数据
推荐帖子
0条评论
0条评论
1条评论