首页 > 解决方案 > 在 C# 中的 sql 查询中对数字字符串进行排序

问题描述

我在数据表的列中有这些数据:

j1
ds2
b15

我需要选择并排序此列。使用以下代码:

var drs = inpDataTable.Select($"myCol<> 'jj'", "myCol Desc");

返回错误答案!:

j1
b15
ds2

我怎样才能得到真实的答案?字符并不重要。我正在使用 SQL Server

标签: c#sqlsql-serversortingselect

解决方案


如果您只想按数字排序,mycol则需要PATINDEX如下:

order by cast(SUBSTRING(mycol, PATINDEX('%[0-9]%', mycol), LEN(mycol)) as INT)

推荐阅读