SQL:每个ID创建多个值的查询

时间:2017-05-09 10:36:59

标签: mysql sql case

我有下表

enter image description here

我是SQL新手,我想创建一个新列,根据满足的条件为ID分配特定值。想象一下,当条件1 =' Y'价值'价值1'被分配,当条件2和条件3都等于' Y'价值'价值2'被安排了。所以这意味着对于ID 1,所有条件也适用于#1; Value1'作为' Value2'满足了。所以输出应该如下所示:

enter image description here

因此请注意,ID = 1没有两行,一个满足条件的每个值,而对于ID = 3和ID = 4,没有任何条件满足,因此它们被赋值为null。关于如何做到这一点的任何想法?

1 个答案:

答案 0 :(得分:0)

我看不出case对此有用。这是一种使用union all的方法:

select id, 'Value1'
from t
where condition1 = 'Y'
union all
select id, 'Value1'
from t
where condition2 = 'Y' and condition3 = 'Y'
union all
select id, NULL
from t
where not (condition1 = 'Y' or (condition2 = 'Y' and condition3 = 'Y'));

如上所述,代码假定条件永远不会NULL,但很容易合并。