1

我想合并两个表,但是当我在 mysql 的 stroeprocedure 中使用 union all 时它删除了零。

如下两张表:

TBL1:

ID VAL1 VAL2
2    3    3
3    3    0

TBL2 

ID VAL1 VAL2
3   0   3
4   0   4

Select ID,VAL1,VAL2 FROM TBL1
UNION ALL
Select ID,VAL2,VAL2 FROM TBL2;

ERROR RESULT:
   ID VAL1 VAL2
    2    3   3
    3    3    
    3        3
    4        4

RIGHT RESULT:
   ID VAL1 VAL2
    2    3   3
    3    3   0
    3    0   3
    4    0   4

当我们使用 union all 时如何保持零值?

问候,

4

1 回答 1

1

试试这个

     Select ID,IF(VAL1 =0, 0,val1) val1,VAL2 FROM TBL1
    UNION ALL
   Select ID,IF(VAL1 =0, 0,val1) val1,VAL2 FROM TBL2;

在这里演示

如果你的 VAL2 也有同样的情况,那么也IF(VAL2 =0, 0,val2) val2用于 val2

你的查询看起来不错看演示http://sqlfiddle.com/#!2/9e0845/2

于 2013-07-27T11:02:01.760 回答