Ringkasan: dalam tutorial ini, Anda akan belajar tentang CASE
SQLite ekspresi untuk menambahkan logika kondisional ke kueri.
CASE
SQLite ekspresi mengevaluasi daftar kondisi dan mengembalikan ekspresi berdasarkan hasil evaluasi.
CASE
ekspresinya mirip dengan IF-THEN-ELSE
pernyataan dalam bahasa pemrograman lain.
Anda dapat menggunakan CASE
ekspresi dalam klausa atau pernyataan apa pun yang menerima ekspresi yang valid. Misalnya, Anda dapat menggunakan CASE
ekspresi dalam klausa seperti WHERE
, ORDER BY
, HAVING
, SELECT
dan pernyataan seperti SELECT
, UPDATE
, dan DELETE
.
SQLite menyediakan dua bentuk CASE
ekspresi:CASE
sederhana dan mencari CASE
.
SQLite sederhana CASE
ekspresi
CASE
sederhana ekspresi membandingkan ekspresi ke daftar ekspresi untuk mengembalikan hasilnya. Berikut ini mengilustrasikan sintaks CASE
sederhana ekspresi.
CASE case_expression
WHEN when_expression_1 THEN result_1
WHEN when_expression_2 THEN result_2
...
[ ELSE result_else ]
END
Code language: SQL (Structured Query Language) (sql)
CASE
sederhana ekspresi membandingkan case_expression
untuk ekspresi muncul di WHEN
pertama klausa, when_expression_1
, untuk kesetaraan.
Jika case_expression
sama dengan when_expression_1
, CASE
simple sederhana mengembalikan ekspresi dalam THEN
. yang sesuai klausa, yang merupakan result_1
.
Jika tidak, CASE
simple sederhana ekspresi membandingkan case_expression
dengan ekspresi di WHEN
berikutnya klausa.
Jika tidak ada case_expression
cocok dengan when_expression
, CASE
ekspresi mengembalikan result_else
di ELSE
ayat. Jika Anda menghilangkan ELSE
klausa, CASE
ekspresi mengembalikan NULL.
CASE
sederhana ekspresi menggunakan evaluasi hubung singkat. Dengan kata lain, ia mengembalikan hasil dan berhenti mengevaluasi kondisi lain segera setelah menemukan kecocokan.
CASE
sederhana contoh
Mari kita lihat customers
tabel dalam database sampel.
Misalkan, Anda harus membuat laporan grup pelanggan dengan logika bahwa jika pelanggan berlokasi di AS, pelanggan ini milik grup domestik, jika tidak, pelanggan termasuk grup asing.
Untuk membuat laporan ini, gunakan CASE
sederhana ekspresi dalam SELECT
pernyataan sebagai berikut:
SELECT customerid,
firstname,
lastname,
CASE country
WHEN 'USA'
THEN 'Domestic'
ELSE 'Foreign'
END CustomerGroup
FROM
customers
ORDER BY
LastName,
FirstName;
Code language: SQL (Structured Query Language) (sql)
Cobalah
SQLite menelusuri CASE
ekspresi
CASE
. yang dicari ekspresi mengevaluasi daftar ekspresi untuk memutuskan hasilnya. Perhatikan bahwa CASE
simple sederhana ekspresi hanya membandingkan kesetaraan, sedangkan pencarian CASE
ekspresi dapat menggunakan segala bentuk perbandingan.
Berikut ini menggambarkan sintaks dari pencarian CASE
ekspresi.
CASE
WHEN bool_expression_1 THEN result_1
WHEN bool_expression_2 THEN result_2
[ ELSE result_else ]
END
Code language: SQL (Structured Query Language) (sql)
CASE
. yang dicari ekspresi mengevaluasi ekspresi Boolean dalam urutan yang ditentukan dan mengembalikan hasil yang sesuai jika ekspresi bernilai benar.
Jika tidak ada ekspresi yang bernilai true, CASE
yang dicari ekspresi mengembalikan ekspresi dalam ELSE
klausa jika ditentukan. Jika Anda menghilangkan ELSE
klausa, CASE
yang dicari ekspresi mengembalikan NULL
.
Mirip dengan CASE
sederhana ekspresi, CASE
yang dicari ekspresi menghentikan evaluasi ketika suatu kondisi terpenuhi.
Menelusuri CASE
contoh
Kami akan menggunakan tracks
meja untuk demonstrasi.
Misalkan Anda ingin mengklasifikasikan trek berdasarkan panjangnya seperti less a minute, track short; antara 1 dan 5 menit, treknya sedang; lebih dari 5 menit, treknya panjang.
Untuk mencapai ini, Anda menggunakan CASE
yang dicari ekspresi sebagai berikut:
SELECT
trackid,
name,
CASE
WHEN milliseconds < 60000 THEN
'short'
WHEN milliseconds > 60000 AND milliseconds < 300000 THEN 'medium'
ELSE
'long'
END category
FROM
tracks;
Code language: SQL (Structured Query Language) (sql)
Cobalah
Dalam tutorial ini, Anda telah belajar tentang SQLite CASE
ekspresi untuk membentuk logika kondisional di dalam kueri SQL.