为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:
【操作系统】:
【CPU】:
【问题描述】*:
开发中遇到了一个mysql语句如下:
select
group_id AS groupId,
group_name AS groupName,
COUNT(IF(online_state = ‘0’,1,NULL)) AS unRegisterCount,
COUNT(IF(online_state = ‘1’,1,NULL)) AS onlineCount,
COUNT(IF(online_state = ‘2’,1,NULL)) AS offlineCount
from dmp_device GROUP BY group_id
我试着改为达梦的,如下:
select
group_id AS groupId,
group_name AS groupName,
COUNT(
CASE
WHEN online_state = ‘0’ THEN 1
ELSE NULL
END
) AS unRegisterCount
from dmp_device GROUP BY group_id
但是报错,很苦恼,不知道怎么改,还请指点一下
select COUNT(case when dummy = ‘0’ then 1 else NULL end case) from dual;
–这样改
select
group_id AS groupId,
group_name AS groupName,
COUNT(
CASE
WHEN online_state = ‘0’ THEN 1
ELSE NULL
END
) AS unRegisterCount
from dmp_device GROUP BY group_id,group_name
select后面的列必须要在group by里面
可以修改dm.ini中参数COMPATIBLE_MODE为4