Logik Bersyarat dalam Pernyataan SELECT SQL: Panduan Komprehensif
SQL selalunya memerlukan logik bersyarat dalam SELECT
pernyataan untuk mengubah suai atau menapis data. Kenyataan CASE
menyediakan penyelesaian serba boleh, disokong merentasi pelbagai dialek SQL.
Untuk meniru struktur IF...THEN
dalam pertanyaan SELECT
, gunakan pernyataan CASE
seperti yang ditunjukkan di bawah:
<code class="language-sql">SELECT CAST( CASE WHEN condition1 OR condition2 THEN value_if_true ELSE value_if_false END AS data_type) AS new_column, * FROM table_name;</code>
Berikut ialah pecahan sintaks:
condition1
dan condition2
: Syarat untuk dinilai.value_if_true
dan value_if_false
: Nilai dikembalikan bergantung pada sama ada syarat itu benar atau palsu.data_type
: Jenis data hasil new_column
.table_name
: Jadual dari mana data dipilih.Sebagai contoh, untuk menambah lajur Saleable
pada jadual Product
, menunjukkan ketersediaan produk berdasarkan status Obsolete
dan InStock
:
<code class="language-sql">SELECT CAST( CASE WHEN Obsolete = 'N' OR InStock = 'Y' THEN 1 ELSE 0 END AS bit) AS Saleable, * FROM Product;</code>
Versi yang dipermudahkan, meninggalkan CAST
, menghasilkan hasil integer:
<code class="language-sql">SELECT CASE WHEN Obsolete = 'N' OR InStock = 'Y' THEN 1 ELSE 0 END AS Saleable, * FROM Product;</code>
CASE
boleh disarangkan atau disepadukan ke dalam fungsi agregat. Selain itu, SQL Server 2012 memperkenalkan pernyataan IIF
, menawarkan sintaks ringkas alternatif:
<code class="language-sql">SELECT IIF(Obsolete = 'N' OR InStock = 'Y', 1, 0) AS Saleable, * FROM Product;</code>
Ini memudahkan logik bersyarat dalam pernyataan SELECT
anda, memberikan fleksibiliti dan kecekapan dalam manipulasi data.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melakukan Logik Bersyarat dalam Pernyataan SELECT SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!