Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
SSIS Integration Runtime ve službě Azure Data Factory
Vrátí jeden ze dvou výrazů na základě vyhodnocení booleovského výrazu. Pokud se logický výraz vyhodnotí jako PRAVDA, vyhodnotí se první výraz a výsledek je výsledkem výrazu. Pokud se logický výraz vyhodnotí jako NEPRAVDA, vyhodnotí se druhý výraz a jeho výsledkem je výsledek výrazu.
Syntaxe
boolean_expression?expression1:expression2
Arguments
boolean_expression
Jde o jakýkoli platný výraz, který se vyhodnotí jako pravda, nepravda nebo NULL.
výraz 1
Je jakýkoli platný výraz.
výraz2
Je jakýkoli platný výraz.
Typy výsledků
Datový typ výrazu1 nebo výraz2.
Poznámky
Pokud boolean_expression vyhodnotí hodnotu NULL, výsledek výrazu je NULL. Pokud je vybraný výraz, výraz1 nebo výraz2 NULL, výsledek je NULL. Pokud vybraný výraz není NULL, ale nevytvořený výraz je NULL, výsledek je hodnota vybraného výrazu.
Pokud výraz1 a výraz2 mají stejný datový typ, výsledkem je tento datový typ. Následující další pravidla platí pro typy výsledků:
Datový typ DT_TEXT vyžaduje, aby výrazy1 a výraz2 měly stejnou znakovou stránku.
Délka výsledku s datovým typem DT_BYTES je délka delšího argumentu.
Sada výrazů, výraz1 a výraz2 musí vyhodnotit platné datové typy a dodržovat jedno z těchto pravidel:
ČíselnéVýraz1 i výraz2 musí být číselný datový typ. Průnikem datových typů musí být číselný datový typ, jak je uvedeno v pravidlech o implicitních číselných převodech, které vyhodnocovač výrazů provádí. Průsečík dvou číselných datových typů nemůže mít hodnotu null. Další informace najdete v tématu Datové typy integračních služeb ve výrazech.
ŘetězecVýraz1 i výraz2 musí být datový typ řetězce: DT_STR nebo DT_WSTR. Dva výrazy se můžou vyhodnotit na různé typy datových řetězců. Výsledek má datový typ DT_WSTR s délkou delšího argumentu.
Datum, čas nebo datum a časVýraz 1 i výraz2 se musí vyhodnotit na jeden z následujících datových typů: DT_DBDATE, DT_DATE, DT_DBTIME, DT_DBTIME2, DT_DBTIMESTAMP, DT_DBTIMESTAMP2, DT_DBTIMESTAPMOFFSET nebo DT_FILETIME.
Poznámka:
Systém nepodporuje porovnání mezi výrazem, který se vyhodnotí jako datový typ času, a výrazem, který se vyhodnotí jako datový typ datum nebo datum a čas. Systém vygeneruje chybu.
Při porovnávání výrazů systém použije následující pravidla převodu v uvedeném pořadí:
Když se oba výrazy vyhodnotí jako stejný datový typ, provede se porovnání tohoto datového typu.
Pokud je jedním výrazem datový typ DT_DBTIMESTAMPOFFSET, druhý výraz se implicitně převede na DT_DBTIMESTAMPOFFSET a provede se porovnání DT_DBTIMESTAMPOFFSET. Další informace najdete v tématu Datové typy integračních služeb ve výrazech.
Pokud je jedním výrazem datový typ DT_DBTIMESTAMP2, druhý výraz se implicitně převede na DT_DBTIMESTAMP2 a provede se porovnání DT_DBTIMESTAMP2.
Pokud je jedním výrazem datový typ DT_DBTIME2, druhý výraz se implicitně převede na DT_DBTIME2 a provede se porovnání DT_DBTIME2.
Pokud je jeden výraz jiného typu než DT_DBTIMESTAMPOFFSET, DT_DBTIMESTAMP2 nebo DT_DBTIME2, před porovnáním se výrazy převedou na datový typ DT_DBTIMESTAMP.
Při porovnávání výrazů systém provede následující předpoklady:
Pokud je každý výraz datový typ, který obsahuje zlomkové sekundy, systém předpokládá, že datový typ s nejmenším počtem číslic pro desetinné sekundy má nuly pro zbývající číslice.
Pokud je každý výraz datovým typem data, ale pouze jeden má posun časového pásma, systém předpokládá, že datový typ data bez posunu časového pásma je ve standardu UTC.
Pro více informací o datových typech, viz Integration Services Data Types.
Příklady výrazů
Tento příklad ukazuje výraz, který se podmíněně vyhodnocuje na savannah nebo unknown.
@AnimalName == "Elephant"? "savannah": "unknown"
Tento příklad ukazuje výraz, který odkazuje na sloupec ListPrice . ListPrice má datový typ DT_CY. Výraz podmíněně vynásobí hodnotu ListPrice 2 nebo .1.
ListPrice < 350.00 ? ListPrice * .2 : ListPrice * .1