首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >更正SQL语法以检查更新过程中是否存在NULL值

更正SQL语法以检查更新过程中是否存在NULL值
EN

Stack Overflow用户
提问于 2013-03-12 23:28:03
回答 2查看 164关注 0票数 0

我有一个表,其中包含有关联系人帐户余额的信息。它包含跟踪他们曾经拥有的第一张发票的日期和最后一次发票的日期以及当前余额的列。

在创建每个新发票时,需要通过一个简单的存储过程更新此表,如下所示:

代码语言:javascript
复制
CREATE PROCEDURE UpdateContactFinancialInformation
   @ContactId int,
   @InvoiceDate date,
   @Amount money
AS
   UPDATE Contacts.ContactsFinancialInformation
   SET LastInvoiceDate = @InvoiceDate,
       CurrentBalance = CurrentBalance + @Amount
   WHERE ContactId = @ContactId

创建新联系人时,将在ContactsFinancialInformation表中为其创建一个默认条目,并且FirstInvoiceDate列将具有默认值NULL

我想在上面的基本SQL语句中添加对此的检查,以便如果FirstInvoiceDate列为NULL,它也会设置传递到存储过程中的参数@InvoiceDate

请问最有效的方法是什么?

EN

Stack Overflow用户

回答已采纳

发布于 2013-03-12 23:38:28

代码语言:javascript
复制
UPDATE Contacts.ContactsFinancialInformation

SET LastInvoiceDate = @InvoiceDate,
    FirstInvoiceDate = CASE WHEN FirstInvoiceDate IS NULL THEN @InvoiceDate ELSE FirstInvoiceDate END,

CurrentBalance = CurrentBalance + @Amount

WHERE ContactId = @ContactId

不过,与COALESCE相比,这种解决方案的唯一优势是代码的可读性更强。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15365298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档