2014-02-25 48 views
1

全部,DB2 SQL - 我的case語句的結果爲NULL時,如何顯示任何內容而不是連字符?

我在寫一個包含CASE語句的查詢,它比較兩個日期時間字段。如果日期B是>日期A,那麼我希望查詢顯示日期B.但是,如果日期B不是>日期A,那麼將獲取查詢創建的報表的用戶希望該列爲空(換句話說,不包含單詞'NULL',不包含連字符,不包含低值日期)。我今天一直在研究這個,但還沒有想出一個可行的解決方案,所以我想在這裏問。這是我目前所擁有的:

CASE 
    WHEN B.DTE_LNP_LAST > A.DTE_PROC_ACT 
    THEN B.DTE_LNP_LAST 
    ELSE ? 
    END AS "DATE OF DISCONNECT" 

如果我把NULL放在哪裏?是,然後我在我的查詢結果中得到一個連字符( - )。如果我省略了Else語句,我還會在查詢結果中得到一個連字符。 ''根本不起作用。有人有想法嗎?

回答

2

通常,空值的顯示方式由用於顯示查詢結果的客戶端軟件控制。如果你堅持這樣做在SQL中,您需要將日期轉換爲字符串:

CASE 
    WHEN B.DTE_LNP_LAST > A.DTE_PROC_ACT 
    THEN VARCHAR_FORMAT(B.DTE_LNP_LAST) 
    ELSE '' 
END AS "DATE OF DISCONNECT" 

替換VARCHAR_FORMAT()用你的平臺上您的DB2版本中提供的格式化功能,如果需要的話。

1

可以使用聚結功能

Coalesce (column, 'text') 

如果第一個值爲空,這將是由第二個代替。

相關問題