我是否知道如何在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 | -
答案 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