0

假设我有:

 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 后如下:

呼叫:''(留空)

常设订单号:777777

数据存储在一个表中,过程从该表中获取数据并将其显示在应用程序表单上,问题是,所有内容都正确显示,除了这个standingOrderNumber。

你能告诉我上面提交的逻辑是否有问题吗?

4

1 回答 1

0

我认为以下行有问题,

when @ID ='2386002' then ISNULL(nullif(i.call,''),i.standingOrderNumber)

在这里,您尝试检查i.call空值并将其替换为空字符串,这使得ISNULL函数无用。

解决方案是不要nullif在上面的行中使用

于 2018-06-13T12:53:09.650 回答