2014-11-26 2 views
1

У меня есть это вложенное тернарное выражение в SSIS, которое я не могу заставить работать, мои глаза вот-вот выйдут из моего черепа.Вложенные тройники, не могут обнаружить ошибку

FINDSTRING(TRIM(f3),"BASICS",1) != 0 ? (UPPER(LEFT(TRIM(f3),1)) == "F" ? @[User::FallBasicsEntityId] : (UPPER(LEFT(TRIM(f3),1)) == "S" ? @[User::SpringBasicsEntityId] : @[user::BasicsEntityId])) : (UPPER(LEFT(TRIM(f3),1)) == "F" ? @[user::FallEntityId] : (UPPER(LEFT(TRIM(f3),1)) == "S" ? @[user::SpringEntityId] : @[user::DefaultEntityId])) 

Вот "отступом" версия:

FINDSTRING(TRIM(f3),"BASICS",1) != 0 
    ? (
     UPPER(LEFT(TRIM(f3),1)) == "F" 
     ? @[User::FallBasicsEntityId] 
     : (
      UPPER(LEFT(TRIM(f3),1)) == "S" 
      ? @[User::SpringBasicsEntityId] 
      : @[user::BasicsEntityId] 
     ) 
    ) 

    : (
     UPPER(LEFT(TRIM(f3),1)) == "F" 
     ? @[user::FallEntityId] 
     : (
      UPPER(LEFT(TRIM(f3),1)) == "S" 
      ? @[user::SpringEntityId] 
      : @[user::DefaultEntityId] 
     ) 
    ) 

Что мне не хватает? Мне кажется, что круглые скобки сбалансированы и правильно размещены .. или они?

Я собираюсь угробить это и прибегнуть к компоненту сценария ... мне кажется, такое выражение было бы легче поддерживать с C# код ...

+0

Что вам не хватает? Описание того, какой должен быть вход/выход. знак равно – RubberDuck

ответ

2

Скобки сбалансированы; проблема в том, что user - это не то же самое, что и User.