SSIS — Производные столбцы — Статус случая — Charindex и Substring

У меня есть следующее преобразование в T-SQL:

SELECT [FIELD_A] = case when CHARINDEX('-', FIELD_B)>0 then LEFT(FIELD_B,CHARINDEX('-', FIELD_B)-1)
    else FIELD_B end,

Как я могу поместить это в выражение в объекте «Производный столбец» с помощью служб SQL Server Integration Services 2014?

С Уважением!!!


person Pedro Alves    schedule 29.03.2017    source источник


Ответы (1)


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

FINDSTRING(FIELD_B, "-", 1) > 0 ? LEFT(FIELD_B, FINDSTRING(FIELD_B, "-", 1)-1) : FIELD_B

Я не проверял это, но это должно заставить вас пойти по правильному пути. Чтобы пройти через него:

  • FINDSTRING принимает 3 значения: какой текст вы хотите найти, какой текст вы хотите найти и какое вхождение вы хотите найти.
  • Логика «Если» в выражениях SSIS — это ? и : символы. ? следует за логическим выражением «Если», а : разделяет выражения «Если правда» и «Если ложь».
  • Литеральные строки в выражениях SSIS необходимо заключать в двойные кавычки.

Ссылка на строку поиска: https://docs.microsoft.com/en-us/sql/integration-services/expressions/findstring-ssis-expression

Условная ссылка: https://docs.microsoft.com/en-us/sql/integration-services/expressions/conditional-ssis-expression

person John Thompson    schedule 29.03.2017