我想按照SQL:2003 extension T611中的规定对所有NULL列进行排序(NULLS LAST
)。可悲的是,SQLite似乎不支持它。有没有一个聪明的解决方法?如何在SQLite中执行NULLS LAST?
回答
可以工作吗?
SELECT ....... ORDER BY COALESCE(col1,col2,col3,etc) IS NULL
我有点困惑你的措辞“所有NULL列最后”。如果你想最后在一个特定的列中的所有NULL值,使用:
SELECT ....... ORDER BY col1 IS NULL
你可以做这样的事情伪造它:
select * from test
order by case ordercol when null then 1 else 0 end, ordercol
为什么'order by case ordercoll为null then 0 else 1,ordercol'?当某人在ordercol中将值设置为低于-100时,会保存一个奇怪的错误。 – mvds
这是一个很好的观点。我只是写了一个模糊的例子,因为我们不知道数据是什么样的。但是你的修正在一般情况下效果更好 - 应用它! – Blorgbeard
虽然我有点像Blorgbeard的答案,这个变体没有按”不关心提供正确数据类型的有效“假”值。
ORDER BY CASE WHEN SOMECOL IS NULL THEN 1 ELSE 0 END, SOMECOL
另外,即使你想使用假的价值,我宁愿ISNULL!
ORDER BY ISNULL(SOMECOL,-9999)
正如Michael指出的,SQLite使用IFNULL
。您也可以使用ANSI-SQL通用版COALESCE
。
小问题我认为......在SQLite中,ISNULL应该是IFNULL。 – Michael
谢谢@Michael,更新了更好的信息 – RichardTheKiwi
我遇到了同样的问题。 我发现这可能是工作:
(我没有找到任何的SQLite功能isnull
)
order by ifnull(column_what_you_want_to_sort,'value in case of null')
- 1. ColdFusion(Railo)QoQ - Nulls Last
- 2. Peewee:如何做ORDER BY ... NULLS(FIRST | LAST)?
- 3. JPQL Hibernate NULLS LAST被忽略
- 4. Django:将“NULLS LAST”添加到查询
- 5. JPA 1:JPQL的ORDER BY NULLS LAST
- 6. 如何通过TopLink中的readAllQuery在订单中使用条件“NULLS LAST”
- 7. 如何正确地创建一个索引DESC NULLS LAST排序
- 8. 如何配置Ransack Rails Gem将NULLS LAST添加到排序
- 9. NULLS LAST在Denodo,MemSQL,Spark,VectorWise和XtremeData中的标志
- 10. sqlite jdbc resultset last
- 11. 如何在C++中执行SQLite语句
- 12. 如何在sqlite中执行desc命令?
- 13. 如何在MSBUILD中执行sqlite(sqlite3)语句,执行任务?
- 14. Postgres:排序非零ASC加零和NULLS LAST
- 15. LINQ order by null column where order is up and nulls should last
- 16. Postgresql排序方式desc nulls last every every query
- 17. 在sqlite表中执行删除行
- 18. 如何在2列中过滤NOT NULLS行
- 19. IOS SQLite执行
- 20. 如何为SQLite执行增量备份?
- 21. 如何执行SQLite到PostgreSQL的迁移?
- 22. Sqlite/SQLAlchemy:如何执行外键?
- 23. 如何分析Sqlite查询执行?
- 24. 如何防止删除NULLS?
- 25. 如何在Python中使用pysqlite2强制执行SQLite外键?
- 26. 如何在Android sqlite中使用IF和ELSE执行查询?
- 27. 我应该如何在Sqlite中执行此查询?
- 28. 如何在SQL Server和SQLite中执行此操作
- 29. 如何在SQLite中自动执行INSERT INTO进程?
- 30. 如何在SQLite查询中执行shell命令?
不要你的意思'IS NOT NULL'? – dan04
@ dan04 thx,你是对的 – mvds
我认为它应该是'IS NULL'来得到最后的空值:) – Blorgbeard