2014-07-10 6 views
0

다음 SQL 코드를 CASE - WHEN에서 SSIS 파생 열 식으로 변환하려고했습니다. 표현식은 varchar (5) 데이터 유형을 사용하여 새 열로 이동합니다.SQL 코드에서 SSIS 파생 열 식 CASE..WHEN

SQL 코드 : 내가 가진

CASE 
WHEN SUBSTRING(A.Column1,1,5) = 'John' 
    OR 
    (C.Column1 IS NOT NULL 
    AND A.Column2 = 'Two') 
     THEN 'Two' 
WHEN SUBSTRING(A.Column1,1,5) = 'Mike' 
     THEN 'HD' 
WHEN D.Column1 IS NOT NULL 
    AND F.Column1 IS NOT NULL 
    AND G.Column1 LIKE '%DDD%' 
    AND G.Column2 = H.Column1 
    AND H.Column2 = '1' 
    AND H.Column3 = 'Y' 
    AND H.Column4 <= A.Column3 
    AND H.Column5 > A.Column3 
    AND H.Column6 <= A.Column3 
     THEN 'HE' 
WHEN B.Column1 IS NOT NULL 
     THEN '' 
WHEN E.Column1 IS NOT NULL 
     THEN '22' 
ELSE '' 

표현 :

SUBSTRING([A.Column1],1,5) == "John" 
|| (ISNULL([C.Column1]) == FALSE 
&& ([A.Column2] == "Two") ? "Two": 

(SUBSTRING([A.Column1],1,5) == "Mike" ? "HD": 
(ISNULL([D.Column1]) == FALSE 
    && ISNULL([F.Column1]) == FALSE 
    && FINDSTRING([G.Column1], "DDD",1) > 0 
    && [G.Column2] ==[H.Column1] 
    && [H.Column2] == "1" 
    && [H.Column3] == "Y" 
    && [H.Column4] <= A.Column3 
    && [H.Column5] > A.Column3 
    && [H.Column6] <= A.Column3 ? "HE": 
(ISNULL([B.Column1]) == FALSE ? "": 
(ISNULL([E.Column1]) == FALSE ? "22":"" 
)))) 

나는 건물의 표현에 새로운 오전, 내가 잘못 가고있는 곳을 찾을 수가있다. 직장 컴퓨터에서 .exe를 실행할 수 없기 때문에 Expression Tester 소프트웨어를 다운로드 할 수 없습니다. 어떤 도움이라도 대단히 감사합니다.

답변

0

앞에 닫는 브라켓이 누락 되었습니까? "2":

이 시도 :

SUBSTRING([A.Column1],1,5) == "John" 
|| (ISNULL([C.Column1]) == FALSE 
&& ([A.Column2] == "Two")) ? "Two":  
(SUBSTRING([A.Column1],1,5) == "Mike" ? "HD": 
(ISNULL([D.Column1]) == FALSE 
    && ISNULL([F.Column1]) == FALSE 
    && FINDSTRING([G.Column1], "DDD",1) > 0 
    && [G.Column2] ==[H.Column1] 
    && [H.Column2] == "1" 
    && [H.Column3] == "Y" 
    && [H.Column4] <= A.Column3 
    && [H.Column5] > A.Column3 
    && [H.Column6] <= A.Column3 ? "HE": 
(ISNULL([B.Column1]) == FALSE ? "": 
(ISNULL([E.Column1]) == FALSE ? "22":"" 
)))) 
+1

가 잡기 주셔서 감사합니다! 그 외, 제 H.Column2는 숫자 데이터 유형이었습니다. 그래서, 나는 또한 데이터 형을 다음과 같이 캐스팅해야했습니다 :'[H.Column2] == (DT_NUMERIC, 1, 0) 1' – Meta747