Megosztás:


? : (feltételes) (SSIS-kifejezés)

A következőkre vonatkozik:SQL Server SSIS integrációs futtatókörnyezet az Azure Data Factory-ban

Két kifejezés egyikét adja vissza egy logikai kifejezés kiértékelése alapján. Ha a logikai kifejezés IGAZRA értékelődik ki, akkor az első kifejezést kell kiértékelni, és annak eredménye lesz a kifejezés eredménye. Ha a logikai kifejezés értéke HAMIS, akkor a második kifejezés kerül kiértékelésre, és ennek eredménye lesz a teljes kifejezés eredménye.

Szemantika

  
boolean_expression?expression1:expression2  
  

Arguments

boolean_expression
Érvényes kifejezés, amelyet Igaz, HAMIS vagy NULL értékre értékelnek ki.

kifejezés1
Bármely érvényes kifejezés.

kifejezés2
Bármely érvényes kifejezés.

Eredménytípusok

A kifejezés1 vagy kifejezés2 adattípusa.

Megjegyzések

Ha a boolean_expression NULL értékre értékel, a kifejezés eredménye NULL. Ha egy kijelölt kifejezés( kifejezés1 vagy kifejezés2 ) NULL, az eredmény NULL. Ha egy kiválasztott kifejezés nem NULL, de a nem kiválasztott kifejezés NULL, az eredmény a kiválasztott kifejezés értéke.

Ha a kifejezés1 és a kifejezés2 adattípusa megegyezik, az eredmény az adattípus. Az eredménytípusokra a következő további szabályok vonatkoznak:

  • A DT_TEXT adattípus megköveteli, hogy a kifejezés1 és a kifejezés2 kódlapja azonos legyen.

  • A DT_BYTES adattípussal rendelkező eredmény hossza a hosszabb argumentum hossza.

A kifejezéskészletnek( kifejezés1 ) és kifejezés2-nek érvényes adattípusokra kell kiértékelnie, és követnie kell az alábbi szabályok egyikét:

  • Numerikus Mind a kifejezés1 , mind a kifejezés2 numerikus adattípusnak kell lennie. Az adattípusok metszetének numerikus adattípusnak kell lennie a kifejezésértékelő által végrehajtott implicit numerikus konverziókra vonatkozó szabályokban meghatározottak szerint. A két numerikus adattípus metszete nem lehet null értékű. További információ: Integration Services-adattípusok a kifejezésekben.

  • Karakterlánc Mind a kifejezés1, mind a kifejezés2 karakterlánc típusúnak kell lennie: DT_STR vagy DT_WSTR. A két kifejezés különböző sztring adattípusokra értékelhető ki. Az eredmény DT_WSTR adattípussal rendelkezik, és a hossza a hosszabb argumentum hosszával egyezik meg.

  • Dátum, idő vagy dátum/idő A kifejezés1 és a kifejezés2 kifejezésnek az alábbi adattípusok egyikére kell kiértékelnie: DT_DBDATE, DT_DATE, DT_DBTIME, DT_DBTIME2, DT_DBTIMESTAMP, DT_DBTIMESTAMP2, DT_DBTIMESTAPMOFFSET vagy DT_FILETIME.

    Megjegyzés:

    A rendszer nem támogatja az időadat-típusra kiértékelt kifejezések és a dátum-/idő adattípusra kiértékelt kifejezések összehasonlítását. A rendszer hibát okoz.

    A kifejezések összehasonlításakor a rendszer a következő konverziós szabályokat alkalmazza a felsorolt sorrendben:

    • Amikor a két kifejezés ugyanazt az adattípust értékeli ki, az adattípus összehasonlítása történik.

    • Ha az egyik kifejezés egy DT_DBTIMESTAMPOFFSET adattípus, a másik kifejezés implicit módon DT_DBTIMESTAMPOFFSET lesz konvertálva, és DT_DBTIMESTAMPOFFSET összehasonlítást hajt végre. További információ: Integration Services-adattípusok a kifejezésekben.

    • Ha az egyik kifejezés egy DT_DBTIMESTAMP2 adattípus, a másik kifejezés implicit módon DT_DBTIMESTAMP2 lesz konvertálva, és DT_DBTIMESTAMP2 összehasonlítás történik.

    • Ha az egyik kifejezés egy DT_DBTIME2 adattípus, a másik kifejezés implicit módon DT_DBTIME2 lesz konvertálva, és DT_DBTIME2 összehasonlítás történik.

    • Ha egy kifejezés nem DT_DBTIMESTAMPOFFSET, DT_DBTIMESTAMP2 vagy DT_DBTIME2 típusú, akkor a kifejezések az összehasonlítás előtt DT_DBTIMESTAMP adattípussá lesznek konvertálva.

    A kifejezések összehasonlítása során a rendszer a következő feltételezéseket teszi:

    • Ha minden kifejezés olyan adattípus, amely tört másodpercet tartalmaz, a rendszer feltételezi, hogy a tört másodpercben a legkisebb számú számjegyet tartalmazó adattípus nullákkal rendelkezik a fennmaradó számjegyekhez.

    • Ha minden kifejezés dátum típusú, de csak egy időzóna-eltolással rendelkezik, a rendszer feltételezi, hogy az időzóna eltolás nélküli dátum adattípusa az egyezményes világidő (UTC) szerint van megadva.

Az adattípusokról további információt az Integration Services adattípusai című témakörben talál.

Kifejezési példák

Ez a példa egy olyan kifejezést mutat be, amely feltételesen savannah vagy unknown értéket vesz fel.

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

Ez a példa egy ListPrice oszlopra hivatkozó kifejezést mutat be. A ListPrice DT_CY adattípussal rendelkezik. A kifejezés feltételesen megszorozza a ListPrice értéket .2 vagy .1 értékkel.

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

Lásd még:

Operátorok elsőbbsége és asszociativitása
Operátorok (SSIS-kifejezés)