我只想按画家或不是画家排序。
Oracle 10g
工作类型
一个人可以为每种工作类型分配一行,但他们可以有多个工作。
SELECT ...(LIST OF FIELDS)...,
WM_CONCAT(job_type) AS myJob_Type
FROM (MYTABLE)
GROUP BY ...(LIST OF FIELDS)...
这给了我逗号分隔列表中myJob_Type中的所有job_type。 这很有效。
现在我想要一种方法,当作业有' Painter'时,我可以通过myJob_Type进行排序。在里面。我不关心任何其他工作类型。所以我的想法是假设如果Painter在myJob_Type中,但是当我确实让它工作时我会再次获得muiltple。
SELECT ...(LIST OF FIELDS)...,
WM_CONCAT(job_type) AS myJob_Type,
CASE WHEN(job_ype like '%Painter%') THEN '1'
ELSE '0'
END
FROM (MYTABLE)
GROUP BY ...(LIST OF FIELDS)...,
job_ype
尝试了另一种选择。
SELECT ...(LIST OF FIELDS)...,
WM_CONCAT(job_type) AS myJob_Type,
CASE WHEN(myJobType like '%Painter%') THEN '1'
ELSE '0'
END
FROM (MYTABLE)
GROUP BY ...(LIST OF FIELDS)...,
myJobType
任何建议。
答案 0 :(得分:1)
你可以尝试:
select ...
wm_concat(job_type) as myJob_Type,
sum(decode(job_type,'Painter',1,0))
from ...
group by ...