Обертывание ISNULL вокруг NULLIF - PullRequest
0 голосов
/ 13 июня 2018

Предположим, что у меня есть:

 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)  

Это всего лишь часть процедуры, которая выполняет синхронизацию между двумя приложениями, проблема в том, что стоящийOrderNumber не синхронизируется, и я предполагаю, что это связано с этимкодовая часть.

Сценарий: после ввода вызова и постоянного номера заказа, например:

вызова: '' (оставьте пустым)

постоянный номер заказа: 777777

Данные хранятся в таблице, и процедура берет данные из этой таблицы и отображает их в форме приложения, проблема в том, что все отображается правильно, кроме этого стоящего номера заказа.

Можете ли вы сказать, если что-то пошло не так в логике, которую я представил выше?

1 Ответ

0 голосов
/ 13 июня 2018

Я думаю, что проблема со строкой ниже,

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

, здесь вы пытаетесь проверить i.call на нулевое значение и заменить его пустой строкой, что делает функцию ISNULL бесполезной.

Решение не использовать nullif в строке выше

...