SQLite
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> SQLite

SQLite CASE

Tóm tắt: trong hướng dẫn này, bạn sẽ tìm hiểu về CASE của SQLite biểu thức để thêm logic có điều kiện vào truy vấn.

SQLite CASE biểu thức đánh giá một danh sách các điều kiện và trả về một biểu thức dựa trên kết quả của việc đánh giá.

CASE biểu thức tương tự với IF-THEN-ELSE câu lệnh trong các ngôn ngữ lập trình khác.

Bạn có thể sử dụng CASE biểu thức trong bất kỳ mệnh đề hoặc câu lệnh nào chấp nhận một biểu thức hợp lệ. Ví dụ:bạn có thể sử dụng CASE biểu thức trong các mệnh đề như WHERE , ORDER BY , HAVING , SELECT và các câu lệnh như SELECT , UPDATEDELETE .

SQLite cung cấp hai dạng của CASE biểu thức:simple CASE và tìm kiếm CASE .

SQLite đơn giản CASE biểu thức

CASE đơn giản biểu thức so sánh một biểu thức với một danh sách các biểu thức để trả về kết quả. Phần sau minh họa cú pháp của CASE đơn giản biểu thức.

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 đơn giản biểu thức so sánh case_expression đến biểu thức xuất hiện trong WHEN đầu tiên mệnh đề, when_expression_1 , vì sự bình đẳng.

Nếu case_expression bằng when_expression_1 , CASE đơn giản trả về biểu thức trong THEN tương ứng mệnh đề, là result_1 .

Nếu không, CASE đơn giản biểu thức so sánh case_expression với biểu thức trong WHEN tiếp theo mệnh đề.

Trong trường hợp không có case_expression khớp với when_expression , CASE biểu thức trả về result_else trong ELSE mệnh đề. Nếu bạn bỏ qua ELSE mệnh đề CASE biểu thức trả về NULL.

CASE đơn giản biểu thức sử dụng đánh giá ngắn mạch. Nói cách khác, nó trả về kết quả và ngừng đánh giá các điều kiện khác ngay khi tìm thấy kết quả phù hợp.

CASE đơn giản ví dụ

Chúng ta hãy xem xét customers trong cơ sở dữ liệu mẫu.

Giả sử, bạn phải lập báo cáo về các nhóm khách hàng với logic rằng nếu khách hàng sống ở Hoa Kỳ thì khách hàng này thuộc nhóm trong nước, nếu không thì khách hàng thuộc nhóm nước ngoài.

Để lập báo cáo này, bạn sử dụng CASE đơn giản trong SELECT tuyên bố như sau:

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)

Hãy thử nó

SQLite đã tìm kiếm CASE biểu thức

CASE đã tìm kiếm biểu thức đánh giá một danh sách các biểu thức để quyết định kết quả. Lưu ý rằng CASE đơn giản biểu thức chỉ so sánh cho bằng nhau, trong khi CASE được tìm kiếm biểu thức có thể sử dụng bất kỳ hình thức so sánh nào.

Phần sau minh họa cú pháp của CASE được tìm kiếm biểu thức.

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 đã tìm kiếm biểu thức đánh giá biểu thức Boolean trong trình tự được chỉ định và trả về kết quả tương ứng nếu biểu thức đánh giá là true.

Trong trường hợp không có biểu thức nào đánh giá là true, CASE được tìm kiếm biểu thức trả về biểu thức trong ELSE mệnh đề nếu được chỉ định. Nếu bạn bỏ qua ELSE mệnh đề CASE được tìm kiếm biểu thức trả về NULL .

Tương tự với CASE đơn giản biểu thức, CASE được tìm kiếm biểu thức dừng đánh giá khi một điều kiện được đáp ứng.

CASE đã tìm kiếm ví dụ

Chúng tôi sẽ sử dụng tracks bảng cho cuộc trình diễn.

Giả sử bạn muốn phân loại các bản nhạc dựa trên độ dài của nó chẳng hạn như dưới một phút thì bản nhạc đó ngắn; từ 1 đến 5 phút, bài hát ở mức trung bình; lớn hơn 5 phút, bản nhạc dài.

Để đạt được điều này, bạn sử dụng CASE đã tìm kiếm biểu thức như sau:

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)

Hãy thử nó

Trong hướng dẫn này, bạn đã học về SQLite CASE biểu thức để tạo logic có điều kiện bên trong truy vấn 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. cách đặt cơ sở dữ liệu và đọc cơ sở dữ liệu từ android thư mục tài sản được tạo và xuất trong sqllite

  2. Cơ sở dữ liệu Android Room, truy xuất giá trị cụ thể của bản ghi mới nhất đã nhập

  3. Cách kiểm tra cơ sở dữ liệu trên thiết bị Android chưa root

  4. Cách đặt từng mục được truy xuất từ ​​cơ sở dữ liệu SQLite thành Chế độ xem văn bản của riêng mục đó

  5. Đính kèm Cơ sở dữ liệu trong SQLite