DB2 SQL如何使null值变为0?

时间:2014-11-19 07:23:51

标签: mysql db2

我是否知道如何在SQL结果中将空值显示为0?

String SQL = " SELECT A.CNCODE,C.TOTPREM,B.ORDER_AMOUNT,DECIMAL(D.AMOUNT,12,2) AS AMOUNT FROM TB_ORDER A,"+
             " TB_ORDER2 B, TB_ORDER3 C LEFT JOIN TB_ORDER4 D ON C.UKEY2=D.UKEY"+
             " WHERE C.UKEY2='0012254' AND C.UKEY2=B.UKEY2 AND C.UKEY2=A.UKEY ";                
      SQL += " WITH UR";

在当前的SQL结果中,金额显示为" -"指示NULL;如何制作" 0.00"?

===========================================
CNCODE | TOTPREM | ORDER_AMOUNT | AMOUNT
===========================================
I0012254 |136.54 |       5      |     -

2 个答案:

答案 0 :(得分:2)

在mysql中,您可以使用coalesce函数将null转换为0,同时选择数据

mysql> select coalesce(null,0);
+------------------+
| coalesce(null,0) |
+------------------+
|                0 |
+------------------+
1 row in set (0.00 sec)

mysql> select coalesce(123,0);
+-----------------+
| coalesce(123,0) |
+-----------------+
|             123 |
+-----------------+
1 row in set (0.00 sec)

答案 1 :(得分:0)

尝试此查询..

 select CNCODE, TOTPREM, ORDERAMOUNT, IFNULL(AMOUNT,0)(select A.CNCODE as CNCODE, C.TOTPREM as TOTPREM,  
 B.ORDER_AMOUNT as ORDERAMOUNT, DECIMAL(D.AMOUNT,12,2) AS AMOUNT FROM TB_ORDER A,
 TB_ORDER2 B, TB_ORDER3 C LEFT JOIN TB_ORDER4 D ON C.UKEY2=D.UKEY
 WHERE C.UKEY2='0012254' AND C.UKEY2=B.UKEY2 AND C.UKEY2=A.UKEY ) temp