hacer que el cero aparezca último en una list de numbers ascendentes

Estoy usando SQLite en una aplicación de Android.
En todas mis tablas, tengo una fila pnetworkingeterminada con un índice de 0 que contiene los valores pnetworkingeterminados para esa tabla.
En la mayoría de las situaciones, el número pnetworkingeterminado para cada campo es 0 y ese es el mejor número para usar.
Sin embargo, cuando ordero mis datos usando una instrucción ORDER BY, quiero poner todos mis campos de valor cero al final de la list, ya que generalmente están vacíos y usan información pnetworkingeterminada.
Excluir estos campos en una statement where es inaceptable ya que estoy tratando de orderar la información, no filtrarla.

Esto es lo que tengo hasta ahora:

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; 

En mi database de la caja de arena, esto arroja algo así como:

 "item 1", 0 "item 2", 0 "item 4", 0 . . . "item 3", 1275350400 "item 42", 1275472800 "item 12", 1275472800 

Pero lo que quiero es:

 "item 3", 1275350400 "item 42", 1275472800 "item 12", 1275476400 . . . "item 1", 0 "item 2", 0 "item 4", 0 

Equivalente a la sugerencia de la statement CASE , pero más corta:

  ORDER BY epoch_date.epoch == 0, epoch_date.epoch 

Prueba esto:

 ORDER BY CASE epoch_date.epoch WHEN 0 THEN 1 ELSE 0 END, epoch_date.epoch 

No he probado en SQLite, pero funciona en muchas otras bases de datos, así que espero que también funcione en SQLite.

¿Puede agregar una columna adicional para actuar como un filter, luego orderar por ambas columnas?

 select (...)epoch_date.epoch, case epoch_date.epoch when 0 then 1 else 0 as default (...) order by default,epoch_date.epoch 

orderar por decodificar (epoch_date.epoch, 0, null, epoch_date.epoch)

puedes usar algo como esto … ya que los nulos se mantienen al final en caso de order ascendente. siempre que tenga una function de deencoding disponible en sqlite … o de lo contrario solo puede usar una statement de caso en su lugar.

Ravi Kumar

No estoy del todo seguro si SQLite permite declaraciones de casos en "order por", pero intente algo en esta línea:

 order by case epoch_date.epoch when 0 then 999999 else epoch_date.epoch end