Я использую MS SSIS 2008, и я хочу выполнить функцию COALESCE в функции DIVIVED COLUMN.Как использовать coalesce в ssis
Не могли бы вы помочь мне написать выражение?
Я использую MS SSIS 2008, и я хочу выполнить функцию COALESCE в функции DIVIVED COLUMN.Как использовать coalesce в ssis
Не могли бы вы помочь мне написать выражение?
У нас нет функции coalesce
. ISNULL
на нашем языке выражений сильно отличается от функции TSQL с тем же именем.
Язык выражения SSIS ISNULL
оценивает операнд и возвращает значение true, если оно является нулевым значением, иначе оно возвращает значение false.
Вместо этого, чтобы выполнить операцию, подобную коалесценции, нам необходимо использовать оператор ISNULL и тройную функцию. ?:
Прочтите это как Test : True condition : False condition
. Предполагая, что MyColumn имеет строку типа Юникод, это определит, была ли MyColumn ложной. Если это так, он будет жестко закодировать строку Вторичное условие. В противном случае он вернет значение MyColumn. Это было бы эквивалентно Tsql в `сливаются (MyColumn,«Secondary Состояние»)
ISNULL(MyColumn) ? "Secondary Condition" : MyColumn
Coalesce позволяет несколько условий поиска, так что-то вроде coalesce(Column0, Column1, Column2)
бы гнезда тройные операторы вместе
ISNULL(Column0) ? (ISNULL(Column1) ? Column2: Column1) : Column0
Это становится уродливым, а но концепция остается прежней - продолжайте вложенность, пока вы не сравните все уровни, которые вам нужно проверить.
Функция Coalesce ограничивается только TSQL. либо в SSIS/SSRS у нас нет функции Coalesce. Таким образом, чтобы получить желаемый результат, мы должны использовать функции ISNULL или ISNOTHING в SSIS/SSRS. В этом случае это будет вложенная функция ISNULL.
Не могли бы вы сообщить мне, почему вы проголосовали здесь. Я дал неправильное предложение? –
Спасибо, работает отлично! Это то, чего я хотел! –