SQLite
 sql >> Teknologi Basis Data >  >> RDS >> SQLite

KASUS SQLite

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 ] 
ENDCode 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 ] 
ENDCode 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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLite - Jatuhkan Database

  2. SQLite KECUALI Operator

  3. Periksa Versi SQLite Anda

  4. Temukan Pelanggaran Kunci Asing di SQLite

  5. Sqlite tidak memasukkan data di tabel ke-2