我写了这样的代码:
SELECT
C.*,
CASE
WHEN C.COST_CENTRE_NAME IS NOT NULL THEN 'YES'
WHEN C.GL_CODE IS NOT NULL THEN 'YES'
WHEN C.MATERIAL_CODE IS NOT NULL THEN 'YES'
ELSE
'NO' END AS DEPENDS_OTHER
FROM
OYSTER3.CAT_RULE_MV C
我想要添加另一个名为DEPENDS_ON的列,其中此列的列值将取决于DEPENDS_OTHER的“是”或“否”值。如果DEPEND_OTHER列值为YES,那么它应该返回DEPENDS_OTHER列下它为YES的列名。我在下面给出一个例子:
id COST_CENTRE_NAME GL_CODE MATERIAL_CODE depends_other depend_on
1 a yes COST_CENTRE_NAME
2 no
3 123 yes GL_CODE
4 a2 yes MATERIAL_CODE
5 no
答案 0 :(得分:0)
重复你已经开始的事情:
select c.*
,case
when c.cost_centre_name is not null then
'YES'
when c.gl_code is not null then
'YES'
when c.material_code is not null then
'YES'
else
'NO'
end as depends_other
,case
when c.cost_centre_name is not null then
'COST_CENTRE_NAME'
when c.gl_code is not null then
'GL_CODE'
when c.material_code is not null then
'MATERIAL_CODE'
else
null
end as depends_on
from oyster3.cat_rule_mv c
答案 1 :(得分:0)
尝试这个
SELECT
C.*,
CASE
WHEN C.COST_CENTRE_NAME IS NOT NULL THEN 'YES'
WHEN C.GL_CODE IS NOT NULL THEN 'YES'
WHEN C.MATERIAL_CODE IS NOT NULL THEN 'YES'
ELSE
'NO' END AS DEPENDS_OTHER,
CASE
WHEN C.COST_CENTRE_NAME IS NOT NULL THEN 'COST_CENTRE_NAME'
WHEN C.GL_CODE IS NOT NULL THEN 'GL_CODE'
WHEN C.MATERIAL_CODE IS NOT NULL THEN 'MATERIAL_CODE'
ELSE
' ' END AS DEPENDS_ON
FROM
OYSTER3.CAT_RULE_MV C