Udostępnij za pośrednictwem


? : (Warunkowy) (Wyrażenie SSIS)

Zwraca jedną z dwóch wyrażeń, na podstawie oceny z wyrażenie warunkowe.Jeśli wyrażenie warunkowe wynikiem jest wartość TRUE, pierwsze wyrażenie jest oceniane, a wynik jest wynik wyrażenia.Jeśli wyrażenie warunkowe ma wartość FAŁSZ, a następnie sprawdzane jest drugie wyrażenie i jego wynik jest wynik wyrażenia.

Składnia


boolean_expression?expression1:expression2
        

Argumenty

  • boolean_expression
    Prawidłowe wyrażenie, którego wynikiem jest PRAWDA, FAŁSZ lub wartości NULL.

  • expression1
    Wszelkie ważne jest wyrażenie.

  • expression2
    Wszelkie ważne jest wyrażenie.

Typy wyników

Typ danych expression1 lub expression2.

Uwagi

Jeśli boolean_expression ma wartość NULL, wynik wyrażenie jest NULL.Jeśli zaznaczone wyrażenie albo expression1 lub expression2 ma wartość NULL, wynik jest NULL.Jeśli zaznaczone wyrażenie nie jest NULL, ale nie wybrano jeden jest NULL, wynik jest wartością wyrażenia wybrane.

Jeśli expression1 i expression2 mają taki sam typ danych jest wynikiem tego typu danych.Następujące dodatkowe zasady stosuje się do typów wynik:

  • DT_TEXT typ danych wymaga, aby expression1 i expression2 sama strona kodowa.

  • Długość wynik z DT_BYTES typ danych jest długość argumentu dłużej.

Wyrażenie zestaw, expression1 i expression2, muszą być prawidłowymi typami danych i wykonaj jedną z tych reguł:

  • Liczbowezarówno expression1 i expression2 musi być typ danych numerycznych.Przecięcie typy danych muszą być typ danych numerycznych, jak określono w przepisach o numeryczne konwersje niejawne, które wykonuje Tester wyrażenie.Przecięcia dwóch typów danych numerycznych nie może być null.Aby uzyskać więcej informacji, zobacz Niejawna konwersja typu danych w wyrażeniach.

  • Ciągzarówno expression1 i expression2 musi być typ danych string: DT_STR lub DT_WSTR.Dwa wyrażenia można ocenić ciąg różne typy danych.Wynik ma typ danych DT_WSTR o długości dłużej argumentu.

  • Daty, godziny lub daty i godzinyzarówno expression1 i expression2 musi być jeden z następujących typów danych: DT_DBDATE, DT_DATE, DT_DBTIME, DT_DBTIME2, DT_DBTIMESTAMP, DT_DBTIMESTAMP2, DT_DBTIMESTAPMOFFSET lub DT_FILETIME.

    Ostrzeżenie

    System nie obsługuje porównania między wyrażenie do czas typ danych i wyrażenie do data lub data /czas typu danych.System generuje błąd.

    Podczas porównywania wyrażenia, system zastosuje następujące reguły konwersji w podanej kolejności:

    • Kiedy dwa wyrażenia oceny tego samego typu danych, porównania tego typu danych jest wykonywane.

    • Jeśli jedno wyrażenie jest typu DT_DBTIMESTAMPOFFSET, inne wyrażenie jest niejawnie konwertowane na DT_DBTIMESTAMPOFFSET i wykonywane jest porównanie DT_DBTIMESTAMPOFFSET.Aby uzyskać więcej informacji, zobacz Typy danych usług integracji w wyrażeniach.

    • Jeśli jedno wyrażenie jest typu DT_DBTIMESTAMP2, inne wyrażenie jest niejawnie konwertowane na DT_DBTIMESTAMP2 i DT_DBTIMESTAMP2, wykonywane jest porównanie.

    • Jeśli jedno wyrażenie jest typu DT_DBTIME2, inne wyrażenie jest niejawnie konwertowane na DT_DBTIME2 i wykonywane jest porównanie DT_DBTIME2.

    • Jeśli jedno wyrażenie jest innego typu niż DT_DBTIMESTAMPOFFSET, DT_DBTIMESTAMP2 lub DT_DBTIME2, wyrażenia są konwertowane na typ danych DT_DBTIMESTAMP zanim są one porównywane.

    Podczas porównywania wyrażenia, system wykonuje następujące założenia:

    • Jeśli każde wyrażenie jest typ danych, który zawiera ułamków sekund, system zakłada ten typ danych o najmniejszej liczby cyfr dla ułamków sekund ma zer dla pozostałych znaków.

    • Jeśli każde wyrażenie jest typ danych Data, ale tylko jeden ma przesunięcie strefy czasowej, system zakłada, że typ danych Data bez przesunięcie strefy czasowej jest uniwersalnym czas koordynowanym (UTC).

Aby uzyskać więcej informacji na temat typów danych, zobacz Typy danych usług integracji.

Przykłady

W tym przykładzie wyrażenie warunkowe do savannah lub unknown.

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

W tym przykładzie wyrażenie odwołuje się do ListPrice kolumna.ListPrice DT_CY typ danych.Wyrażenie warunkowe mnoży ListPrice .2 lub dziesiątych.

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