【发布时间】:2018-06-13 12:34:40
【问题描述】:
假设我有:
case
when @ID ='2386002' then ISNULL(nullif(i.call,''),i.standingOrderNumber)
when nullif(rtrim(i.call),'') is null then
nullif(rtrim(i.standingOrderNumber), '')
else case when nullif(rtrim(i.standingOrderNumber),'') is null then rtrim(i.call)
else
rtrim(i.call)
这只是在两个应用程序之间进行同步的过程的一部分,问题是standingOrderNumber 不同步,我认为它与此代码部分有关。
场景: 像这样输入 call 和 StandingOrderNumber 后:
调用:''(留空)
standingOrderNumber: 777777
数据存储在一个表中,过程从该表中获取数据并将其显示在应用程序表单上,问题是,所有内容都正确显示,除了这个standingOrderNumber。
你能告诉我上面提交的逻辑是否有问题吗?
【问题讨论】:
-
当您提交表单时,它是真正传递一个空还是将 '' 转换为 NULL?
-
什么意思?
-
糟糕,错字...我在空后省略了“字符串”。也许是错误的,我认为这个过程是从表单接收数据,但现在重读后似乎是另一种方式。更具体地说,这个过程的输入来源是什么?查看完整代码(带有变量声明)会有所帮助
标签: sql-server stored-procedures isnull nullif