关于ISNULL的问题
ALTER Proc OrderRefund_Confirm
@OrderRefund_ID varchar(50),
@operate varchar(50)
as
--========================
--订单退货确认
--========================
--eg :exec OrderRefund_Confirm '20120221000002', 1
declare @OrdersC_ID varchar(50),@Return_Qty numeric(10,5),
@Product_Code varchar(50) ,@Product_Name varchar(50),@Descript varchar(50),
@Project varchar(50) , @Camera varchar(50) ,@Logo varchar(50) ,
@Color varchar(50) ,@Unit varchar(50),
@Amount NUMERIC(10,5), @ErrorMsg varchar(2000)
if @operate=1
begin
SELECT @OrdersC_ID=OrdersC_ID ,@Return_Qty=Return_Qty ,
@Product_Code=Product_Code , @Product_Name=Product_Name ,
@Descript=Descript , @Project=Project , @Camera=Camera , @Logo=Logo ,
@Color=Color , @Unit=Unit
FROM OrderRefund
WHERE OrderRefund_ID=@OrderRefund_ID
if not exists(select * from WasteProducts
where Product_Code=@Product_Code and Product_Name=@Product_Name
and Descript=@Descript and Project=@Project
and Camera=@Camera and Logo=@Logo
and Color=@Color and Unit=@Unit)
begin
insert into WasteProducts(Product_Code,Product_Name,Descript,Project,Camera,Logo,Color,Unit,Amount)
values(@Product_Code,@Product_Name,@Descript,@Project,@Camera,@Logo,@Color,@Unit,@Return_Qty)
end
else
BEGIN
--更新库存(预扣数量增加,库存数量增加)
UPDATE WasteProducts SET Amount=isnull(Amount,0)+@Return_Qty
WHERE Product_Code=@Product_Code and Product_Name=@Product_Name and Descript=@Descript
and Project=@Project and Camera=@Camera and Logo=@Logo
and Color=@Color and Unit=@Unit
--更新订单(退货数量增加)
UPDATE OrdersC SET Return_Qty=isnull(Return_Qty,0)+@Return_Qty WHERE OrdersC_ID=@OrdersC_ID
END
end
相关推荐
在SQL Server中使用ISNULL执行空值判断查询
主要介绍了在SQL Server中使用ISNULL执行空值判断查询,ISNULL的好处是可以直接写在SELECT查询语句中,需要的朋友可以参考下
COALESCE与ISNULL区别[源码]
本文详细比较了SQL中处理NULL值的两个常用函数COALESCE和ISNULL的差异。COALESCE是SQL标准的一部分,支持多个参数,适合跨数据库系统使用;而ISNULL是SQL Server特有函数,仅支持两个参数,但在数据类型转换上更灵活。文章还讨论了它们在性能上的微小差异,并提供了具体的使用示例。最后,根据不同的应用场景给出了选择建议:若需代码可移植性和多参数处理,推荐COALESCE;若仅在SQL Server环境中工作且只需处理两个参数,ISNULL可能更简洁。
深入浅析Orcale的nvl函数和SQL Server的isnull函数
主要介绍了Orcale的nvl函数和SQL Server的isnull函数的相关资料,需要的朋友可以参考下
SQL中isnull()用法总结[代码]
本文详细介绍了SQL中isnull()函数及其在不同数据库中的用法。在SQL Server中,isnull(value1,value2)函数用于判断value1是否为null,如果是则返回value2,否则返回value1。MySQL中提供了isnull(exper)、ifnull(exper1,exper2)和nullif(exper1,exper2)三种函数,分别用于判断是否为空、替换空值和比较返回NULL或expr1。Oracle中则使用nvl(value1,value2)和nvl2(value1,value2,value3)函数来处理空值,以及NULLIF(expr1,expr2)函数来比较参数。文章通过具体示例说明了这些函数的用法和注意事项,帮助读者更好地理解和应用这些函数。
SQLSERVER ISNULL 函数与判断值是否为空的sql语句
由于服务器设置不当导致sqlserver的某个字段为空,导致部分内容显示失败,所有这里需要将为空的字符替换为制定的字符


