在SQL中添加NULL

时间:2016-08-10 11:48:53

标签: sql asp.net

我计划添加sql值。

 Dim cmdStringc23 As String = " Update [Associate_wise_chart] 
        set [Hours]= (select SUM(tat) from [Dashboard].[dbo].[Dashboard] 
        where [assignee] like '%Santosh%') + (select SUM(tat) 
        from [Dashboard].[dbo].[requests] 
        where [assignee] like '%Santosh%') "

考虑一下, 仪表板表中的值 10 来自请求表的值为 NULL

所以我得到答案为10 + NULL = NULL 我把tat设置为NULL。我的要求,我必须将答案显示为 10 而不是 NULL

任何人都可以看看吗?

6 个答案:

答案 0 :(得分:4)

使用SQL中的ISNULL函数...

Update [Associate_wise_chart] 
  set [Hours]= ISNULL((select SUM(tat) from [Dashboard].[dbo].[Dashboard] 
 where [assignee] like '%Santosh%'), 0) + ISNULL((select SUM(tat) 
from [Dashboard].[dbo].[requests]
 where [assignee] like '%Santosh%'), 0) "

那会让你ISNULL(10,0)+ ISNULL(NULL,0)= 10 + 0 = 10

答案 1 :(得分:1)

你不能。

NULL是“unknown”的同义词。十加不明不明。未知数可以是0,-1,42或甚至6E23 +π/ 2。但它仍然未知。

这就是你得到NULL的原因。

相反,检查NULL,如果不是NULL,则只添加其他值。

答案 2 :(得分:0)

在创建表格时设置NOTNULL

答案 3 :(得分:0)

快速轻松地将 tat 列转换为 非空 ,并使用0代替NULL。

答案 4 :(得分:0)

Dim cmdStringc23 As String = " Update [Associate_wise_chart] 
    set [Hours]= (select isnull(sum(tat), 0) from [Dashboard].[dbo].[Dashboard] 
    where [assignee] like '%Santosh%') + (select isnull(sum(tat), 0) 
    from [Dashboard].[dbo].[requests] 
    where [assignee] like '%Santosh%') "

使用isnull

答案 5 :(得分:0)

更新[仪表板]。[dbo]。[Associate_wise_chart] 设置[小时] = ISNULL((从[仪表板]中选择SUM(tat)。[dbo]。[Dashboard]其中[受让人]喜欢'%Santosh%'),0)+ ISNULL((从[选择SUM(tat)]仪表板]。[dbo] .Unbuilds [受让人]喜欢'%Santosh%'),0)其中[Name] ='Santhosh'

ISNULL正在工作。谢谢大家。