Vorrei ordinare il mio risultato con tutte le colonne NULL (NULLS LAST
), come specificato nello SQL:2003 extension T611. Purtroppo, SQLite sembra non supportarlo. C'è una soluzione intelligente?Come fare NULLS LAST in SQLite?
risposta
potrebbe funzionare?
SELECT ....... ORDER BY COALESCE(col1,col2,col3,etc) IS NULL
Sono un po 'confuso dal testo "tutte le colonne NULL durano". Se si desidera che tutti i valori NULL ultimi in una determinata colonna, utilizzare questo:
SELECT ....... ORDER BY col1 IS NULL
si può fare qualcosa di simile ad esso falso:
select * from test
order by case ordercol when null then 1 else 0 end, ordercol
perché non ordinare per caso quando ordercol è nullo, quindi 0 else 1, ordercol'? salva un bug strano quando qualcuno inserisce valori sotto -100 in ordercol. – mvds
Questo è un buon punto. Ho appena scritto un esempio vago in cima alla mia testa perché non sappiamo come appaiono i dati. Ma la tua correzione funziona meglio in generale - applicata! – Blorgbeard
Mentre un po 'come la risposta di Blorgbeard, questa variante doesn' t cura di fornire un valore "falso" valido del giusto tipo di dati.
ORDER BY CASE WHEN SOMECOL IS NULL THEN 1 ELSE 0 END, SOMECOL
In alternativa, anche se si voleva utilizzare un valore falso, preferirei ISNULL!
ORDER BY ISNULL(SOMECOL,-9999)
Come ha osservato Michael, SQLite utilizza IFNULL
. È possibile utilizzare anche la versione universale ANSI-SQL COALESCE
.
Correzione minore Penso che ... in SQLite, ISNULL dovrebbe essere IFNULL. – Michael
Grazie @ Michael, aggiornato con informazioni migliori – RichardTheKiwi
Mi sono imbattuto nello stesso problema. ho scoperto questo potrebbe funzionare:
(non ho trovato alcuna funzione isnull
per SQLite)
order by ifnull(column_what_you_want_to_sort,'value in case of null')
- 1. JPQL Hibernate NULLS LAST ignorato
- 2. Django: aggiunta di "NULLS LAST" per interrogare
- 3. Come fare se non esiste in SQLite
- 4. Perché 'last' è chiamato 'last' in Perl?
- 5. Funzioni LAG e NULLS
- 6. Il comando OpenRowSet in TSQL restituisce NULLS
- 7. .NET: Last LINQ (
- 8. Round datetime to last
- 9. Perché è (10..20) .last uguale a (10 ... 20) .last
- 10. Find last domenica
- 11. Lost Last Git Commit
- 12. C'è qualcosa come "last` per` map`?
- 13. Iterator to last element in std :: list
- 14. Passa alla scheda last-active in VIM
- 15. "Last 100 byte" Scenario Intervista
- 16. Come annullare call-last-kbd-macro in emacs
- 17. (Debole) ETags e Last-Modified
- 18. PHP Check MySQL Last Row
- 19. jQuery remove last table column
- 20. Clojure butlast vs drop-last
- 21. Come archiviare datetime in SQLite
- 22. CSS3: dopo l'override: last-child
- 23. PHP Foreach If Array Last
- 24. CSS: come dire .class: last-of-type [classi, non elementi!]
- 25. DOVE: NULL non funziona in SQLite?
- 26. SHA1 hashing in SQLite: come?
- 27. Come memorizzare JSON in SQLite
- 28. come eseguire sqrt in sqlite
- 29. come simulare REPEAT() in SQLite
- 30. sqlite android sqlite sincronizzazione sqlite
Non lo dire 'NON null'? – dan04
@ dan04 thx, hai ragione – mvds
Penso che dovrebbe essere "IS NULL" per ottenere i null ultimi :) – Blorgbeard