Me gustaría ordenar mi resultado con todas las columnas NULL al final (NULLS LAST
), como se especifica en el SQL:2003 extension T611. Lamentablemente, SQLite parece no ser compatible. ¿Hay una solución inteligente?¿Cómo hacer NULLS LAST en SQLite?
Respuesta
¿podría esto funcionar?
SELECT ....... ORDER BY COALESCE(col1,col2,col3,etc) IS NULL
Estoy algo confundido por su fraseología "todas las columnas NULL al final". Si desea que todos los valores NULL últimos en una columna en particular, utilice esto:
SELECT ....... ORDER BY col1 IS NULL
se puede hacer algo como esto para fingir:
select * from test
order by case ordercol when null then 1 else 0 end, ordercol
¿por qué no 'ordenar por caso cuando ordercol es nulo y luego 0 else 1, ordercol'? guarda un error extraño cuando alguien pone valores por debajo de -100 en ordercol. – mvds
Ese es un buen punto. Acabo de escribir un vago ejemplo sobre la cabeza porque no sabemos cómo son los datos. Pero su corrección funciona mejor en general, ¡se aplicó! – Blorgbeard
Aunque algo así como la respuesta de Blorgbeard, esta variante doesn' No importa si se proporciona un valor "falso" válido del tipo de datos correcto.
ORDER BY CASE WHEN SOMECOL IS NULL THEN 1 ELSE 0 END, SOMECOL
Alternativamente, incluso si quisiera utilizar un valor falso, ¡preferiría ISNULL!
ORDER BY ISNULL(SOMECOL,-9999)
Como señaló Michael, SQLite usa IFNULL
. También puede usar la versión universal ANSI-SQL COALESCE
.
Corrección secundaria, creo ... en SQLite, ISNULL debe ser IFNULL. – Michael
Gracias @Michael, actualizado con mejor información – RichardTheKiwi
Me encontré con el mismo problema. me enteré que esto podría funcionar:
(no he encontrado ninguna función isnull
para SQLite)
order by ifnull(column_what_you_want_to_sort,'value in case of null')
- 1. ¿Cómo hacer que = NULL funcione en SQLite?
- 2. C# 4: ¿cómo detectar nulls en línea?
- 3. ¿Cómo funciona linq Last()?
- 4. ¿Cómo hacer si no existe en SQLite
- 5. Magento addFieldToFilter allow NULLs
- 6. .NET: ¿Permitir NULLS en los campos DB?
- 7. .NET: LINQ's Last()
- 8. capture the last WM_SIZE
- 9. Lost Last Git Commit
- 10. Cómo deshacer call-last-kbd-macro en emacs
- 11. Cómo hacer múltiples columna de restricción-unicidad en ormlite (SQLite)
- 12. ¿Cómo hacer que ON DELETE CASCADE funcione en sqlite 3.7.4?
- 13. ¿Cuál es la diferencia entre `null == last` y` null eq last`, en Scala?
- 14. PHP Foreach If Array Last
- 15. (Débil) ETags y Last-Modified
- 16. mod_rewrite RewriteCond basado en Last-modified? (.htaccess)
- 17. Programatically find TFS changes since last build
- 18. El comando OpenRowSet en TSQL está retornando NULLS
- 19. Sqlite/SQLAlchemy: ¿cómo hacer cumplir las claves externas?
- 20. ¿Cuándo hacer la instrucción finalize en sqlite en iOS?
- 21. Vimscript: find last parenthese or bracket
- 22. ¿Cómo usar un índice basado en funciones en una columna que contiene NULLs en Oracle 10+?
- 23. ¿Cómo cargar extensiones en SQLite?
- 24. Cómo analizar la fecha del encabezado HTTP Last-Modified?
- 25. cómo acceder a la matriz [3..last] (ruby)
- 26. ¿Hay algo así como `last` for` map`?
- 27. Java LinkedHashMap get first or last entry
- 28. Last y LastOrDefault no son compatibles
- 29. : last-child no selecciona el último elemento
- 30. CSS 3: después de Anulación: last-child
No quiere decir 'NO SE null'? – dan04
@ dan04 thx, tienes razón – mvds
Creo que debería ser 'IS NULL' para obtener los nulos la última :) – Blorgbeard