在SQL中,两个字段相加的结果AS为一个新的字段,如果一个字段为空,其和也为空,为什么??

时间:2021-09-28 15:05:19
select 收货单位 as 客户名称,订单编号,软件名称,版本号型号,(软件名称+版本号型号) as 版本号型号,数量,单价,数量*单价 as 金额,备注,大区,业务员,产品分类3 as 产品类别 from productoutingdepot where 订单编号='1' ORDER BY 大区,客户名称,编号

12 个解决方案

#1


NULL值 在SQLSERVER中很特殊
得处理下
否则不能加减,不能做任何操作

#2


NULL值 在SQLSERVER中很特殊
如何处理下,解决立即给分。

在线等待……

#3


在相加之前判断,如果为null,就赋值为' '空格,就可以(如果结果中不想要空格就在相加后去掉这个空格就行了,所以,处理方法就是在相加前进行判断

#4



SQL Server有令:

任何与空值做运算后的结果都为空(NULL)

select 收货单位 as 客户名称,订单编号,软件名称,版本号型号,(IsNull(软件名称, '')+IsNull(版本号型号, '')) as 版本号型号,数量,单价,数量*单价 as 金额,备注,大区,业务员,产品分类3 as 产品类别 from productoutingdepot where 订单编号='1' ORDER BY 大区,客户名称,编号

#5


用isnull()函数
好象

#6


ISNULL
使用指定的替换值替换 NULL。

语法
ISNULL ( check_expression , replacement_value ) 

参数
check_expression

将被检查是否为 NULL的表达式。check_expression 可以是任何类型的。

replacement_value

在 check_expression 为 NULL时将返回的表达式。replacement_value 必须与 check_expresssion 具有相同的类型。 

返回类型
返回与 check_expression 相同的类型。

注释
如果 check_expression 不为 NULL,那么返回该表达式的值;否则返回 replacement_value。

示例
A. 将 ISNULL 与 AVG 一起使用
下面的示例查找所有书的平均价格,用值 $10.00 替换 titles 表的 price 列中的所有 NULL 条目。

USE pubs
GO
SELECT AVG(ISNULL(price, $10.00))
FROM titles
GO

下面是结果集:

-------------------------- 
14.24                      

(1 row(s) affected)

B. 使用 ISNULL
下面的示例为 titles 表中的所有书选择书名、类型及价格。如果一个书名的价格是 NULL,那么在结果集中显示的价格为 0.00。

USE pubs
GO
SELECT SUBSTRING(title, 1, 15) AS Title, type AS Type, 
   ISNULL(price, 0.00) AS Price
FROM titles
GO

下面是结果集:

Title           Type         Price          
--------------- ------------ -------------------------- 
The Busy Execut business     19.99                      
Cooking with Co business     11.95                      
You Can Combat  business     2.99                       
Straight Talk A business     19.99                      
Silicon Valley  mod_cook     19.99                      
The Gourmet Mic mod_cook     2.99                       
The Psychology  UNDECIDED    0.00                       
But Is It User  popular_comp 22.95                      
Secrets of Sili popular_comp 20.00                      
Net Etiquette   popular_comp 0.00                       
Computer Phobic psychology   21.59                      
Is Anger the En psychology   10.95                      
Life Without Fe psychology   7.00                       
Prolonged Data  psychology   19.99                      
Emotional Secur psychology   7.99                       
Onions, Leeks,  trad_cook    20.95                      
Fifty Years in  trad_cook    11.95                      
Sushi, Anyone?  trad_cook    14.99                      

(18 row(s) affected)

#7


IsNull() 是个好办法,还可以用CASE语句来完成

#8


IsNull() 是个好办法,还可以用CASE语句来完成

#9


用isnull()呀

#10


我已经搞定!

select 收货单位 as 客户名称,订单编号,(LTRIM(rtrim(软件名称))+RTRIM(ltrim(ISNULL (版本号型号,'')))) as 版本号型号,数量,单价,数量*单价 as 金额,备注,大区,业务员,产品分类3 as 产品类别 from productoutingdepot where YEAR(出库时间)='2002' and Month(出库时间)='6' ORDER BY 大区,客户名称,编号

#11


cool , 学到东西了

#12


cool , 学到东西了

#1


NULL值 在SQLSERVER中很特殊
得处理下
否则不能加减,不能做任何操作

#2


NULL值 在SQLSERVER中很特殊
如何处理下,解决立即给分。

在线等待……

#3


在相加之前判断,如果为null,就赋值为' '空格,就可以(如果结果中不想要空格就在相加后去掉这个空格就行了,所以,处理方法就是在相加前进行判断

#4



SQL Server有令:

任何与空值做运算后的结果都为空(NULL)

select 收货单位 as 客户名称,订单编号,软件名称,版本号型号,(IsNull(软件名称, '')+IsNull(版本号型号, '')) as 版本号型号,数量,单价,数量*单价 as 金额,备注,大区,业务员,产品分类3 as 产品类别 from productoutingdepot where 订单编号='1' ORDER BY 大区,客户名称,编号

#5


用isnull()函数
好象

#6


ISNULL
使用指定的替换值替换 NULL。

语法
ISNULL ( check_expression , replacement_value ) 

参数
check_expression

将被检查是否为 NULL的表达式。check_expression 可以是任何类型的。

replacement_value

在 check_expression 为 NULL时将返回的表达式。replacement_value 必须与 check_expresssion 具有相同的类型。 

返回类型
返回与 check_expression 相同的类型。

注释
如果 check_expression 不为 NULL,那么返回该表达式的值;否则返回 replacement_value。

示例
A. 将 ISNULL 与 AVG 一起使用
下面的示例查找所有书的平均价格,用值 $10.00 替换 titles 表的 price 列中的所有 NULL 条目。

USE pubs
GO
SELECT AVG(ISNULL(price, $10.00))
FROM titles
GO

下面是结果集:

-------------------------- 
14.24                      

(1 row(s) affected)

B. 使用 ISNULL
下面的示例为 titles 表中的所有书选择书名、类型及价格。如果一个书名的价格是 NULL,那么在结果集中显示的价格为 0.00。

USE pubs
GO
SELECT SUBSTRING(title, 1, 15) AS Title, type AS Type, 
   ISNULL(price, 0.00) AS Price
FROM titles
GO

下面是结果集:

Title           Type         Price          
--------------- ------------ -------------------------- 
The Busy Execut business     19.99                      
Cooking with Co business     11.95                      
You Can Combat  business     2.99                       
Straight Talk A business     19.99                      
Silicon Valley  mod_cook     19.99                      
The Gourmet Mic mod_cook     2.99                       
The Psychology  UNDECIDED    0.00                       
But Is It User  popular_comp 22.95                      
Secrets of Sili popular_comp 20.00                      
Net Etiquette   popular_comp 0.00                       
Computer Phobic psychology   21.59                      
Is Anger the En psychology   10.95                      
Life Without Fe psychology   7.00                       
Prolonged Data  psychology   19.99                      
Emotional Secur psychology   7.99                       
Onions, Leeks,  trad_cook    20.95                      
Fifty Years in  trad_cook    11.95                      
Sushi, Anyone?  trad_cook    14.99                      

(18 row(s) affected)

#7


IsNull() 是个好办法,还可以用CASE语句来完成

#8


IsNull() 是个好办法,还可以用CASE语句来完成

#9


用isnull()呀

#10


我已经搞定!

select 收货单位 as 客户名称,订单编号,(LTRIM(rtrim(软件名称))+RTRIM(ltrim(ISNULL (版本号型号,'')))) as 版本号型号,数量,单价,数量*单价 as 金额,备注,大区,业务员,产品分类3 as 产品类别 from productoutingdepot where YEAR(出库时间)='2002' and Month(出库时间)='6' ORDER BY 大区,客户名称,编号

#11


cool , 学到东西了

#12


cool , 学到东西了