2014-03-27 42 views
0

我有一個WebForms應用程序將以下結果集的錯誤綁定到數據網格。是否有內聯選項檢查T-SQL中的空白和空白?

SELECT missing.ID, '--Not Found--', '--Not Found--', 'Timeclock ID ('+missing.TimeClock_System_ID+') not found' AS ErrorMessage 
    FROM @StudentRecords missing 
    WHERE missing.Registration_ID IS NULL 

最後一列創建了後來被綁定到數據網格的字符串,它通常看起來是這樣的:「時鐘ID(1234)未找到」

問題是缺少時。 TimeClock_System_ID == null整個字符串中斷並返回「」而不是「Timeclock ID()not found」

我目前的解決方法是:

ISNULL (missing.TimeClock_System_ID , 'NULL') 

但這發生故障時的值是一個空字符串。

感謝提前:)

+1

case語句當= '' 那麼X否則ISNULL(... ) –

+3

爲什麼當一個空字符串出現時會「中斷」,在我看來,它應該給你你所期望的:'Timeclock ID()not found' – Lamak

+0

不知道爲什麼整個字符串返回當值爲null時爲null,但是當我向他們解釋時,我的同事給了我一個*哦,是的,當然是*反應。他們覺得這就是TSQL 2008的工作原理。 – D1v3

回答

4

嘗試:

ISNULL (nullif(missing.TimeClock_System_ID,'') , 'NULL') 
+0

Awsomesauce!這是我需要的。謝謝 :) – D1v3

0

可以使用case聲明:

case 
when missing.TimeClock_System_Id is null 
     or missing.TimeClock_System_Id = '' then 'NULL' 
else missing.TimeClock_System_Id 
end