2014-09-19 15 views
6

Có cần phải bao gồm mệnh đề ELSE trong biểu thức CASE không?Tôi có cần một mệnh đề khác trong biểu thức trường hợp không?

Ví dụ, nếu tôi muốn kéo tên của động vật mà con mèo và không có gì khác, tôi có thể sử dụng SELECT tuyên bố này:

SELECT DISTINCT(CASE WHEN animal_type = 'cat' THEN animal_name END) AS cat_names 

Tôi biết tôi chỉ có thể đưa animal_type = 'cat' tại khoản WHERE tôi và sau đó

SELECT DISTINCT cat_names, 

nhưng tôi muốn biết câu trả lời.

+1

'CASE' là * biểu thức *, không phải là * câu lệnh *. Chỉ đáng nhớ trong tâm trí, bởi vì mọi người thường xuyên nhầm lẫn nó cho một số hình thức tuyên bố kiểm soát dòng chảy, chứ không phải là một biểu thức tính toán một giá trị. –

+0

@Damien_The_Unbeliever Cụm từ đó có thể bắt nguồn từ ORACLE trong đó 'CASE' * là * một câu lệnh: https://docs.oracle.com/cd/B19306_01/appdev.102/b14261/case_statement.htm – TylerH

Trả lời

10

Bạn không cần khoản else. Nếu không được chỉ định, case sẽ trả lại null. Nói cách khác, nó hoạt động như thể nó có mệnh đề else null.

Các vấn đề liên quan