使用数据表中的字母数字值对列进行排序

时间:2016-08-11 04:47:16

标签: sorting datatable

我有一个列的前缀为' C'比如C72, C4, C54, C39,当我按照顺序排序时,它就变成了,

C72, C54, C4, C39

但我不想

C72, C54, C39, C4

我该怎么做?

3 个答案:

答案 0 :(得分:0)

假设您使用的是MSSQL SERVER,可以使用CAST& CONVERTINT。使用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为前缀。