如何在postgresql查询中放置嵌套的case-when条件
发布时间:2020-12-13 16:05:18 所属栏目:百科 来源:网络整理
导读:我想在查询条件时写入嵌套大小写,以便存储将来自一个案例的条件和条件变为同一个新列时的另一个案例.为了获得这种结果,我将查询编写为: (case when sq_name_new1 like format('%%%s%%',demo.name) THEN count(sq_name_new1) else (when demo.empcode is not
我想在查询条件时写入嵌套大小写,以便存储将来自一个案例的条件和条件变为同一个新列时的另一个案例.为了获得这种结果,我将查询编写为:
(case when sq_name_new1 like format('%%%s%%',demo.name) THEN count(sq_name_new1) else (when demo.empcode is not null then count(demo.id) End) END) AS indivisual from res_scheduledjobs 在上面的查询demo.name列来自CTE.so我的整个查询看起来像: with demo(empcode,id,name) as (select hr_employee.emp_code,hr_employee.id,concat(resource_resource.name,' ',hr_employee.middle_name,hr_employee.last_name) as name from hr_employee inner join resource_resource on resource_resource.id=hr_employee.resource_id) select demo.empcode,demo.name,sq_name_new1,(case when sq_name_new1 like format('%%%s%%',demo.name) THEN count(sq_name_new1) else (when demo.empcode is not null then count(demo.id) End) END) AS indivisual from res_scheduledjobs LEFT JOIN demo on demo.id=res_scheduledjobs.assigned_technician group by res_scheduledjobs.assigned_technician,demo.empcode,demo.name ; 我只想将(sq_name_new1)列的计数存储到INDIVISUAL列中,将(demo.id)列的计数存储到同一列中,即如果第一种情况不匹配,则在INDIVISUAL中. 请帮我写出正确的嵌套case-when条件. 解决方法
CASE …… WHEN … END是一个表达.它可以像任何其他表达式一样嵌套.
CASE WHEN condition THEN CASE WHEN othercondition THEN .... END END (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |