Bagikan melalui


? : (Kondisional) (Ekspresi SSIS)

Berlaku untuk: SQL Server SSIS Integration Runtime di Azure Data Factory

Mengembalikan salah satu dari dua ekspresi berdasarkan evaluasi ekspresi Boolean. Jika ekspresi Boolean dievaluasi ke TRUE, maka ekspresi pertama dievaluasi dan hasilnya adalah hasil ekspresi. Jika ekspresi Boolean dievaluasi ke FALSE, maka ekspresi kedua dievaluasi dan hasilnya adalah hasil ekspresi.

Sintaks

  
boolean_expression?expression1:expression2  
  

Argumen

boolean_expression
Adalah ekspresi valid apa pun yang mengevaluasi ke TRUE, FALSE, atau NULL.

ekspresi1
Adalah ekspresi yang valid.

ekspresi2
Adalah ekspresi yang valid.

Jenis Hasil

Jenis data ekspresi1 atau ekspresi2.

Keterangan

Jika boolean_expression mengevaluasi ke NULL, hasil ekspresi adalah NULL. Jika ekspresi yang dipilih, ekspresi1 atau ekspresi2 adalah NULL, hasilnya adalah NULL. Jika ekspresi yang dipilih bukan NULL, tetapi yang tidak dipilih adalah NULL, hasilnya adalah nilai ekspresi yang dipilih.

Jika ekspresi1 dan ekspresi2 memiliki jenis data yang sama, hasilnya adalah jenis data tersebut. Aturan tambahan berikut berlaku untuk jenis hasil:

  • Jenis data DT_TEXT mengharuskan ekspresi1 dan ekspresi2 memiliki halaman kode yang sama.

  • Panjang hasil dengan jenis data DT_BYTES adalah panjang argumen yang lebih panjang.

Kumpulan ekspresi, ekspresi1 dan ekspresi2, harus dievaluasi ke jenis data yang valid dan mengikuti salah satu aturan berikut:

  • Numerik Ekspresi1 dan ekspresi2 harus berupa tipe data numerik. Persimpangan jenis data harus merupakan jenis data numerik seperti yang ditentukan dalam aturan tentang konversi numerik implisit yang dilakukan evaluator ekspresi. Persimpangan dari dua jenis data numerik tidak boleh null. Untuk informasi selengkapnya, lihat Jenis Data Integration Services di Ekspresi.

  • String Ekspresi1 dan ekspresi2 harus merupakan jenis data string: DT_STR atau DT_WSTR. Kedua ekspresi dapat mengevaluasi ke jenis data string yang berbeda. Hasilnya memiliki jenis data DT_WSTR dengan panjang argumen yang lebih panjang.

  • Tanggal, Waktu, atau Tanggal/Waktu Ekspresi1 dan ekspresi2 harus dievaluasi ke salah satu jenis data berikut: DT_DBDATE, DT_DATE, DT_DBTIME, DT_DBTIME2, DT_DBTIMESTAMP, DT_DBTIMESTAMP2, DT_DBTIMESTAPMOFFSET, atau DT_FILETIME.

    Catatan

    Sistem tidak mendukung perbandingan antara ekspresi yang mengevaluasi ke jenis data waktu dan ekspresi yang mengevaluasi ke jenis data tanggal atau tanggal/waktu. Sistem menghasilkan kesalahan.

    Saat membandingkan ekspresi, sistem menerapkan aturan konversi berikut dalam urutan yang tercantum:

    • Saat kedua ekspresi mengevaluasi ke jenis data yang sama, perbandingan jenis data tersebut dilakukan.

    • Jika satu ekspresi adalah jenis data DT_DBTIMESTAMPOFFSET, ekspresi lainnya secara implisit dikonversi ke DT_DBTIMESTAMPOFFSET dan perbandingan DT_DBTIMESTAMPOFFSET dilakukan. Untuk informasi selengkapnya, lihat Jenis Data Integration Services di Ekspresi.

    • Jika satu ekspresi adalah jenis data DT_DBTIMESTAMP2, ekspresi lainnya secara implisit dikonversi ke DT_DBTIMESTAMP2 dan perbandingan DT_DBTIMESTAMP2 dilakukan.

    • Jika satu ekspresi adalah jenis data DT_DBTIME2, ekspresi lainnya secara implisit dikonversi ke DT_DBTIME2, dan perbandingan DT_DBTIME2 dilakukan.

    • Jika satu ekspresi berjenis selain DT_DBTIMESTAMPOFFSET, DT_DBTIMESTAMP2, atau DT_DBTIME2, ekspresi dikonversi ke jenis data DT_DBTIMESTAMP sebelum dibandingkan.

    Saat membandingkan ekspresi, sistem membuat asumsi berikut:

    • Jika setiap ekspresi adalah jenis data yang menyertakan detik pecahan, sistem mengasumsikan bahwa jenis data dengan jumlah digit paling sedikit untuk detik pecahan memiliki nol untuk digit yang tersisa.

    • Jika setiap ekspresi adalah jenis data tanggal, tetapi hanya satu yang memiliki offset zona waktu, sistem mengasumsikan bahwa jenis data tanggal tanpa offset zona waktu berada di Waktu Universal Terkoordinasi (UTC).

Untuk informasi selengkapnya tentang jenis data, lihat Jenis Data Integration Services.

Contoh Ekspresi

Contoh ini menunjukkan ekspresi yang mengevaluasi secara kondisional ke savannah atau unknown.

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

Contoh ini memperlihatkan ekspresi yang mereferensikan kolom ListPrice . ListPrice memiliki jenis data DT_CY. Ekspresi secara kondisional mengalikan ListPrice dengan .2 atau .1.

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

Lihat Juga

Prioritas Operator dan Associativity
Operator (Ekspresi SSIS)