Альтернативы для подписи () в sqlite для пользовательского заказа - PullRequest
0 голосов
/ 19 мая 2010

У меня есть строковый столбец, который содержит несколько числовых полей, но многие из них равны 0, пустой строке или нулю. Остальные числа имеют разный диапазон, все положительные.

Я пытался создать собственный заказ. Заказ будет сделан двумя полями. Сначала я хотел бы заказать поля с этим номером> 0, а затем отсортировать по имени.

Так что-то это будет работать:

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

Но в Sqlite отсутствует функция sign () -1/0/1, и я работаю на Android и не могу создавать пользовательские функции. Какие еще варианты у меня есть, чтобы сделать этот вид.

Ответы [ 2 ]

0 голосов
/ 19 мая 2010

Через некоторое время мне удалось придумать это:

SELECT * FROM table
order by length(substr(referenceid,1,1)) desc, name asc;
0 голосов
/ 19 мая 2010

Функция ifnull может преобразовывать нули в -1:

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