Обработка NULL условного разделения служб SSIS

Я пытаюсь обновить записи из условного разбиения служб SSIS в места назначения после их сравнения, но я застрял на значениях NULL. У меня есть исходная таблица со 128 столбцами, которую нужно сравнить с местом назначения, чтобы найти записи для обновления, к сожалению, я не могу сравнить значения NULL вместе, или результат условия будет ложным, поскольку он не может сравнивать значения NULL. Есть ли способ легко сравнить исходные и целевые записи, обрабатывающие значения NULL, в виде строки или каким-либо другим способом избежать сбоя? Спасибо

1 ответ

Решение

Попробуй использовать ISNULL(column,'NULL') сравнивать со строкой NULL не актуально NULL,

Если оба источника и назначения имеют NULLнужно добавить ISNULL с обеих сторон, например, ISNULL(Source_col,'NULL') = ISNULL(Target_col,'NULL')

Кроме того, если вам не нужно сравнивать эти NULLвы можете отфильтровать те NULL во-первых, и это даст вам лучшую производительность во время выполнения.

Например, вы можете условно разделить источник where col is not null и установите пункт назначения select * From table where col1 is not null and col2 is not null, так далее.

ОБНОВИТЬ

В вашем случае это будет:

(ISNULL(SRC_ACT_PLN,'NULL') == ISNULL(DST_ACT_PLN,'NULL')) (то же самое для других), но имейте в виду, что если источник и пункт назначения NULL, он все равно будет возвращен как TRUEиначе сделайте то, что я предлагаю выше, обработайте (отфильтруйте) NULL Сначала сделайте сравнение.

Другие вопросы по тегам