2010-03-01 2 views
0

В потоке данных у меня есть задача с производным столбцом. В выражении для одного из столбцов у меня есть следующее выражение:Выражения SSIS - оценка проблемы с выражением

[siteid] == "100" ? "1101" : [siteid] == "110" ? "1001" : [siteid] == "120" ? "2101" : [siteid] == "140" ? "1102" : [siteid] == "210" ? "2001" : [siteid] == "310" ? "3001" : [siteid] 

Это работает отлично. Тем не менее, я намерен повторно использовать это, по крайней мере, в десятке других мест, поэтому я хочу сохранить это в переменной и использовать переменную в Derived Column вместо жестко закодированного выражения. Когда я пытаюсь создать переменную, используя вышеприведенное выражение, я получаю синтаксическую ошибку, указывающую, что «siteid» не определен. Думаю, это имеет смысл, потому что это не так. Но как я могу заставить это выражение работать с использованием переменной? Похоже, мне нужно каким-то образом сказать, что «siteid» будет столбцом, содержащим данные, к которым я хочу применить выражение.

ответ

1

Вы не можете использовать имена столбцов в переменных выражениях. Я боюсь, что нет способа легко «клонировать» эту логику в SSIS.

Я бы предположил, однако, что вы не пытаетесь клонировать жестко закодированную логику, как это. Постройте ссылочную таблицу и используйте компонент Lookup для извлечения значения. Таким образом, если ваш аргумент «case» когда-либо изменяется, вам нужно только сделать одну модификацию - вам не нужно выслеживать всю эту логику. И настройка Lookup довольно легко перетащить.

Смежные вопросы