2009-08-18 26 views
63

Liệu sqlite có hỗ trợ hàm sql "if" trong câu lệnh chọn không?Liệu sqlite có hỗ trợ bất kỳ loại câu lệnh IF (điều kiện) nào trong một lựa chọn

ví dụ

select if(length(a) > 4 , a , ' ') as b 
from foo 

mà sẽ trả về một nếu chiều dài dài hơn 4 ký tự. hoặc nếu không, nó sẽ trả về '' là b

Nếu nó hỗ trợ điều kiện trong việc chọn cú pháp nào sẽ được sử dụng?

Tôi đã kiểm tra http://sqlite.org/lang_corefunc.html nhưng tôi không thể thấy.

Trả lời

96

Xem biểu thức case.

Biểu thức CASE có vai trò tương tự như IF-THEN-ELSE bằng các ngôn ngữ lập trình khác.

Ví dụ bạn

select case when length(a) > 4 then a else '' end as b 
from foo 
+0

này những gì tôi cần. –

14

Bạn có thể sử dụng case cho rằng:

select case when length(a)>4 then a else ' ' end from foo; 
+0

Odd; liên kết không hoạt động cho iceweasel. Nó sẽ gây ra một lỗi không tìm thấy tài liệu (/lang_5Fexpr.html). Địa chỉ trong thanh địa chỉ sẽ là địa chỉ chính xác mặc dù (.../lang_expr.html). Không chắc sao lại thế. Mặc dù địa chỉ là chính xác, làm mới sẽ không hoạt động; phải nhấn enter trong thanh địa chỉ để lấy trang. – Inshallah

+0

markdown không thích gạch dưới tôi đoán. Tôi đã thay đổi liên kết để sử dụng trình chuyển hướng snurl –

+0

và bạn không nên sử dụng trình chuyển hướng [vì vậy URL trực tiếp hiện có – Mark

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