在用Python寫ClinicOS時,數據庫端遇到了不少問題,今天遇到的是如何實現像Oracle中的decode函數一樣的功能?google了很久都沒有找到答案,無賴之下只能滴了兩滴眼藥水,然后仔細閱讀Sqlite文檔,最后終于在這個頁面找到了答案:
http://www.sqlite.org/lang_expr.html實現這個功能的就是case...when...then...esle...end語句,用法很簡單,結構比decode清晰多了,現舉例如下:
例一:

Sqlite的case用法簡單例程
1
select?
2
??????case?1?
3
?????????when?1?then?'男'
4
?????????else?'女'?
5
??????end?;例二:
假設有個表test,其中用一個整形字段sex表示性別,1表示男,0表示女,-1表示未知,其它情況表示未填,則sql為:

Sqlite的case用法詳細舉例
1
select?
2
???case?sex
3
??????when?1?then?'男'
4
??????when?0?then?'女
5
??????when?-1?then?'未知'
6
??????else?''
7
??????end?as?"性別"
8
from?test注意,when...then可以出現N組,且注意中間沒有任標點,權用逗號隔開.
希望對用Sqlite的朋友們有所幫助