Mysql union删除零

时间:2013-07-27 10:58:54

标签: mysql

我想合并两个表,但是当我在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时如何保持零值?

此致

1 个答案:

答案 0 :(得分: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;

DEMO HERE

如果VAL2同样如此,那么也使用IF(VAL2 =0, 0,val2) val2作为val2

您的查询看起来正确,只需看看http://sqlfiddle.com/#!2/9e0845/2