2014-03-27 41 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