如果我有一个1,2,3,4,5,K
的列表,我希望它的订购像K,1,2,3,4,5
我怎么能在SQL中做到这一点?这些值是SQL表中唯一的值。这是在MySQL中,但也欢迎其他数据库。SQL排序字符串和数字
2
A
回答
5
有mysql中没有整数dection功能,所以你必须做这样的事情。假设你的列是VARCHAR或类似的,你可以简单的东西像这样
ORDER BY CASE WHEN field REGEXP '^-?[0-9]+$' THEN field ELSE '0'+field END
+0
不能将它转换为带符号的int吗? –
+0
当然,但是如果失败了,你会得到一个null。这一步就完成了 – dfb
1
在Oracle中,你可以这样做:
ORDER BY CASE WHEN column='K' THEN 0 ELSE TO_NUMBER(column) END
其他系统可能也有类似的结构。
1
如果您需要对SELECT的结果进行排序,那么您可以在ORDER BY语句中声明您的自定义排序规则。
下面是一个例子:http://www.emadibrahim.com/2007/05/25/custom-sort-order-in-a-sql-statement/
的想法是你自己的优先级分配给每个项目。
请记住,它可能依赖于实际的SQL服务器。
0
这里有一个在SQLite的工作:
select v1.* from (
select t3.*, (case when value = 'K' then '0' else value end) normalized_val
from t3) v1
order by v1.normalized_val;
相关问题
- 1. SQL排序数字和字符串
- 2. SQL Oracle排序字符串(数字)和(带数字的字母)
- 3. SQL字符串排序
- 4. SQL按字符串排序
- 5. 排序字符串数字
- 6. SQL Server:字符串转换数字和排序问题
- 7. 排序字符串和删除字符
- 8. SQL排序和连字符
- 9. Python字符串和排序?
- 10. 字符串按字符数排序
- 11. Groovy中用字母和数字排序的数字字符串
- 12. 在Transact SQL中数字排序(以字符串排序而不是Int排序)
- 13. 如何排序数字字符串和文字字符串数组
- 14. 排序字符串数组
- 15. 排序字符串数组
- 16. 排序字符串数组
- 17. 排序字符串数组
- 18. 排序字符串数据
- 19. 排序字符串数组
- 20. 拆分和排序字符串数组
- 21. 合并和排序字符串数组
- 22. 排序字符串
- 23. bash:用数字排序字符串
- 24. 排序字符串以数字正确
- 25. 排序与字符串包含数字
- 26. MySQL。数字按字符串排序ID
- 27. 排序字符串+数字在Perl
- 28. 从文件数字排序字符串
- 29. 在字符串数组中排序字
- 30. 在SQL中的字符串排序
目前还不清楚是否这些表中的行/结果集,或逗号分隔值的单个字符串要在其中的顺序值改变了。 – Hammerite
你的排序规则是什么?数字前的字母? –
什么sql方言? – dfb