2013-02-12 28 views
1

我想使用字符串「UnRegistered」顯示從左外連接返回的空值。用字符串替換左外連接空值使用字符串

當值爲整數或布爾,我只是寫:

ISNULL(ReturnedValue, 0) AS ReturnedValue 

,但我怎樣才能使它:

ISNULL(ReturnedValue, 'UnRegistered') AS ReturnedValue 

我用MS SQL SERVER。

+0

您正在使用哪個數據庫管理系統使用? – CloudyMarble 2013-02-12 12:38:13

+0

@MahmoudGamal,MeNoMore:Ms Sql Server – 2013-02-12 12:41:21

回答

4

由於您需要在同一字段中使用varchar值以及int/bool,因此您需要確保該字段的每一行具有相同的數據類型。

Isnull(Convert(varchar(50), ReturnedValue), 'UnRegistered') AS ReturnedValue 

或者您可以將CASE作爲

Case when ReturnedValue is null then 'UnRegistered' 
    else convert(varchar(50), ReturnedValue) end as ReturnedValue 
+0

它給出了一個錯誤,列名'UnRegistered'無效。 – 2013-02-12 12:52:02

+0

對不起,現在修正錯誤,現在已修復 – Kaf 2013-02-12 12:53:47

+0

ISNULL以外的轉換是多餘的,ISNULL函數與檢查表達式具有相同的返回類型,因爲您已將其轉換爲varchar,第二個轉換varchar to varchar。 – GarethD 2013-02-12 12:56:36