2017-06-28 106 views
0

我正在使用CONCAT('€ ', FORMAT(t_plus, 2))語句從我的數據庫中獲取數據。但是這個聲明總是返回一個值。即使該行爲空,SQL也會返回€ 0.00CONCAT返回錯誤數據

我不想顯示空行爲€ 0.00

有人知道我該如何解決這個問題嗎?

以下是完整的SQL語句:

SELECT date_format(date, '%e %M %Y') AS date, 
     CONCAT('€ ', FORMAT(t_plus, 2)) as t_plus, 
     CONCAT('€ ', FORMAT(t_min, 2)) as t_min 
FROM trans 

回答

1

您可以添加IF處理空值,例如:

SELECT date_format(date, '%e %M %Y') AS date, 
    IF(t_plus != '', CONCAT('€ ', FORMAT(t_plus, 2)), '') as t_plus, 
    IF(t_min != '', CONCAT('€ ', FORMAT(t_min, 2)), '') as t_min 
FROM trans 
+0

這對我不起作用。如果't_plus'包含數據't_min'爲空。如果't_min'包含數據't_plus'爲空。通過這個語句,'t_min'列中的數據被忽略 – John

+0

@John,那麼該值的期望輸出是什麼?只是一個空單元? –

+0

@John更新了答案 –

0

可以使用CASE表達類似

case when t_plus is not null then CONCAT('€ ', FORMAT(t_plus, 2)) 
else null end as t_plus 
+0

它沒有改變任何東西。我仍然得到€0.00 – John

+0

我改變了我的數據庫中的數據。空行現在是NULL。該聲明現在顯示'空'而不是'0.00' – John

+0

@約翰,是的,這是預期的...如果你想放棄整行,那麼你應該檢查提供的其他答案 – Rahul