我在Android应用程序中使用sqlite.
在我的所有表中,我有一个索引为0的默认行,它保存该表的默认值.
在大多数情况下,每个字段的默认编号为0,这是要使用的最佳编号.
但是,当我使用ORDER BY语句对数据进行排序时,我希望将所有零值字段放在列表的末尾,因为它们通常是空的并使用默认信息.
在where语句中排除这些字段是不可接受的,因为我正在尝试对信息进行排序,而不是对其进行过滤.
在我的所有表中,我有一个索引为0的默认行,它保存该表的默认值.
在大多数情况下,每个字段的默认编号为0,这是要使用的最佳编号.
但是,当我使用ORDER BY语句对数据进行排序时,我希望将所有零值字段放在列表的末尾,因为它们通常是空的并使用默认信息.
在where语句中排除这些字段是不可接受的,因为我正在尝试对信息进行排序,而不是对其进行过滤.
这是我到目前为止所拥有的:
select distinct item.name,epoch_date.epoch from epoch_date,time where (time.begin_date_id = epoch_date._id) and (item.time_id = time._id) order by epoch_date.epoch;
"item 1",0 "item 2",0 "item 4",0 . . . "item 3",1275350400 "item 42",1275472800 "item 12",1275472800
但我想要的是:
"item 3",1275476400 . . . "item 1",0
解决方法
相当于CASE声明建议,但更短:
ORDER BY epoch_date.epoch == 0,epoch_date.epoch