-1
A
回答
1
假设所有值都包含一个可以跟随数字部分的非数字部分,则可以使用类似的方法(使用AdventureWorks2008R2示例数据库):
SELECT Name,
LEFT(Name,LEN(Name)-NULLIF(PATINDEX('%[^0-9]%',REVERSE(Name)),0)+1) AS StringPart,
CONVERT(FLOAT,RIGHT(Name,NULLIF(PATINDEX('%[^0-9]%',REVERSE(Name)),1))) AS NumericPart
FROM Production.Product
ORDER BY StringPart, NumericPart
如果不符合假设条件(例如,如果非数字部分丢失,或者在数字部分之后存在另一个字符串部分等),这将提供“不正确的”结果。
相关问题
- 1. 排序字符串字段不排序正确
- 2. 排序字符串数字
- 3. .NET正确排序兼作串数字
- 4. 排序bash没有正确排序csv字符串
- 5. bash排序数字正确
- 6. 如何以正确的顺序显示数字/字符串?
- 7. 字符串按字符数排序
- 8. 如何正确排序字符串的字符以与Java中的另一个字符串进行比较?
- 9. Qsort不正确排序字符串数组
- 10. 为什么字符串数组不正确排序?
- 11. 以数字顺序排列非数字层次字符串
- 12. 排序字符串数组
- 13. 排序字符串数组
- 14. 排序字符串数组
- 15. 排序字符串数组
- 16. 排序字符串数据
- 17. 排序字符串数组
- 18. 在Transact SQL中数字排序(以字符串排序而不是Int排序)
- 19. Java比较要正确排序包含符号的字符串
- 20. 排序字符串
- 21. 什么是正确的字符串排序顺序?
- 22. bash:用数字排序字符串
- 23. SQL排序数字和字符串
- 24. 排序与字符串包含数字
- 25. SQL排序字符串和数字
- 26. MySQL。数字按字符串排序ID
- 27. 排序字符串+数字在Perl
- 28. 从文件数字排序字符串
- 29. 在字符串数组中排序字
- 30. 按字母顺序排列字符串数组(以字符串形式)
看这里:http://stackoverflow.com/questions/1250960/how-to-sort-out-numeric-strings-as-numerics/1250989#1250989 – Guffa
谢谢Guffa。我可以做任何类似于C#的东西( - :但是寻找一个TSQL解决方案。顺便说一句,为什么item_5会在你的答案中跟在file_10后面? – cs0815
如果你有所有值,比如x [number]日期类型(例如int)并将数字从x移到那里,然后通过这个新列进行排序 – Max