2010-05-19 48 views
0

我有一個字符串列,其中包含一些數字字段,但很多是0,空字符串或null。其餘的數字有不同的範圍,都是正面的。替代簽名()在sqlite的自定義順序

我試圖通過創建自定義順序。該命令將由兩個字段完成。首先,我想訂購這個數字> 0的字段,然後按名稱排序。

因此,一些這樣的工作:

select * from table 
order by sign(referenceid) desc, name asc; 

但SQLite的缺乏徵(+)-1/0/1功能,我在Android上,我不能創建用戶定義的函數。我還有哪些其他選項可以完成此類排序。

回答

0

一段時間,我設法想出這個後:

SELECT * FROM table 
order by length(substr(referenceid,1,1)) desc, name asc; 
0

IFNULL函數可空轉換爲-1:

select *, ifnull(referenceid,-1) as reff 
    from table 
order by reff desc, name asc; 
+0

+1感謝有關語法改進;) – danihp 2012-01-29 14:11:04