? : (조건부)(SSIS 식)

적용 대상: SQL Server Azure Data Factory의 SSIS Integration Runtime

부울 식의 평가에 따라 두 식 중 하나를 반환합니다. 부울 식이 TRUE이면 첫 번째 식이 계산되고 반환 결과는 식의 결과입니다. 부울 식이 FALSE면 두 번째 식이 평가되고 반환 결과는 식의 결과입니다.

구문

  
boolean_expression?expression1:expression2  
  

인수

boolean_expression
TRUE, FALSE 또는 NULL로 계산되는 임의의 유효한 식입니다.

expression1
유효한 식입니다.

expression2
유효한 식입니다.

결과 형식

expression1 또는 expression2의 데이터 형식입니다.

설명

boolean_expression NULL로 계산되면 식 결과는 NULL입니다. expression1 또는 expression2 중에서 선택한 식이 NULL이면 결과도 NULL입니다. 선택한 식은 NULL이 아니지만 선택하지 않은 식이 NULL이면 결과는 선택한 식의 값입니다.

expression1expression2의 데이터 형식이 같으면 결과는 해당 데이터 형식입니다. 다음 추가 규칙이 적용됩니다.

  • DT_TEXT 데이터 형식은 expression1expression2 의 코드 페이지가 같아야 합니다.

  • DT_BYTES 데이터 형식의 결과 길이는 둘 중에서 긴 인수의 길이입니다.

식 집합 expression1expression2는 유효한 데이터 유형을 평가하고 다음 규칙 중 하나를 따라야 합니다.

  • 숫자 expression1expression2 모두 숫자 데이터 형식이어야 합니다. 데이터 형식의 교집합은 식 계산기가 수행하는 암시적 숫자 변환에 대한 규칙에 지정된 대로 숫자 데이터 형식이어야 합니다. 두 숫자 데이터 형식의 교집합은 null이 될 수 없습니다. 자세한 내용은 Integration Services Data Types in Expressions을 참조하세요.

  • 스트링 expression1expression2는 문자열 데이터 형식(DT_STR 또는 DT_WSTR)이어야 합니다. 두 식은 서로 다른 문자열 데이터 형식으로 평가될 수 있습니다. 긴 인수의 길이가 DT_WSTR 데이터 형식의 결과입니다.

  • 날짜, 시간 또는 날짜/시간 expression1expression2 모두 DT_DBDATE, DT_DATE, DT_DBTIME, DT_DBTIME2, DT_DBTIMESTAMP, DT_DBTIMESTAMP2, DT_DBTIMESTAPMOFFSET 또는 DT_FILETIME 데이터 형식 중 하나로 계산해야 합니다.

    참고 항목

    시스템은 시간 데이터 형식으로 계산되는 식과 날짜 또는 날짜/시간 데이터 형식으로 계산되는 식 사이의 비교를 지원하지 않습니다. 시스템은 오류를 생성합니다.

    식을 비교할 때 시스템은 다음 변환 규칙을 나열된 순서대로 적용합니다.

    • 두 식이 동일한 데이터 형식으로 계산되면 해당 데이터 형식 비교가 진행됩니다.

    • 한 식이 DT_DBTIMESTAMPOFFSET 데이터 형식인 경우 다른 식은 암시적으로 DT_DBTIMESTAMPOFFSET로 변환되고 DT_DBTIMESTAMPOFFSET 비교가 진행됩니다. 자세한 내용은 Integration Services Data Types in Expressions을 참조하세요.

    • 한 식이 DT_DBTIMESTAMP2 데이터 형식인 경우 다른 식은 암시적으로 DT_DBTIMESTAMP2로 변환되고 DT_DBTIMESTAMP2 비교가 진행됩니다.

    • 한 식이 DT_DBTIME2 데이터 형식인 경우 다른 식은 암시적으로 DT_DBTIME2로 변환되고 DT_DBTIME2 비교가 진행됩니다.

    • 한 식이 DT_DBTIMESTAMPOFFSET, DT_DBTIMESTAMP2 또는 DT_DBTIME2 이외의 형식인 경우 식은 비교되기 전에 DT_DBTIMESTAMP 데이터 형식으로 변환됩니다.

    식을 비교할 때 시스템은 다음과 같이 가정합니다.

    • 각 식이 소수 자릿수 초를 포함하는 데이터 형식인 경우 시스템은 소수 자릿수 초의 자릿수가 가장 적은 데이터 형식의 나머지 자릿수가 0이라고 가정합니다.

    • 각 식이 날짜 데이터 형식이지만 하나에만 표준 시간대 오프셋만 있는 경우 시스템은 표준 시간대 오프셋이 없는 날짜 데이터 형식은 UTC(협정 세계시)라고 가정합니다.

데이터 형식에 대한 자세한 내용은 Integration Services 데이터 형식을 참조하세요.

식 예제

이 예에서는 조건에 따라 savannah 또는 unknown으로 계산되는 식을 보여 줍니다.

@AnimalName == "Elephant"? "savannah": "unknown"  

이 예제는 ListPrice 열을 참조하는 식을 나타냅니다. ListPrice에는 DT_CY 데이터 형식이 있습니다. 이 식은 조건부로 ListPrice를 .2 또는 .1로 곱합니다.

ListPrice < 350.00 ? ListPrice * .2 : ListPrice * .1  

참고 항목

연산자 우선 순위 및 결합성
연산자(SSIS 식)