如果列的值大于0,则拆分Sql行

时间:2014-08-04 18:10:44

标签: sql split row zero

所以目前我有一个表有一堆字段和3个成本字段(人工,零件,杂项)。我想要做的是将表格分开,以便只有一个成本字段实际上每行有数据。然后将其他成本字段留空。实施例。

Name | Labor |Parts | Misc
test1  800    500     0
test2  0      500     0
test3  700    200     120

to 

Name | Labor |Parts | Misc

test1  800    0       0
test1  0      500     0
test2  0      500     0
test3  700    0       0
test3  0      200     0
test3  0      0     120

我对SQL工作相当陌生,我找不到一个好的解决方案。任何想法都会很棒。

由于

1 个答案:

答案 0 :(得分:3)

尝试这种方式:

select Name,  Labor, 0 as Parts,0 as Misc
from Table 
where Labor > 0
union all
select Name,   0 as Labor, Parts,0 as Misc
from Table 
where Parts > 0
union all
select Name,  0 as Labor, 0 as Parts,Misc
from Table 
where Misc > 0