我有一个列的前缀为' C'比如C72, C4, C54, C39
,当我按照顺序排序时,它就变成了,
C72, C54, C4, C39
但我不想
C72, C54, C39, C4
我该怎么做?
答案 0 :(得分:0)
假设您使用的是MSSQL SERVER,可以使用CAST
& CONVERT
或INT
。使用PATINDEX仅从每个值中检索Numeric部分作为Substring,并使用CAST
将检索到的值转换为Order By
并使用Select *
From
Tablename
ORDER BY
CAST(substring([colname],PATINDEX('%[0-9]%',[colname]),len([colname])) AS INT) DESC
Enumerable.Range
答案 1 :(得分:0)
如果您使用的是SQL Server,请检查此链接。 http://www.essentialsql.com/use-sql-server-to-sort-alphanumeric-values/
答案 2 :(得分:0)
如果您想按照降序排列字母C
的数字进行排序,那么您可以将数字的字符串子化并转换为整数:
SELECT col
FROM yourTable
ORDER BY CAST(SUBSTRING(col, 2, LEN(col) - 1) AS INT) DESC
此答案假定列中的每个值都以字母C
为前缀。