如何在 C# 中对 nvarchar 列进行排序

How to sort nvarchar column in C#

我在对数据类型为 nvarchar 的列进行排序时遇到问题。我如何按升序排序。 数据采用这种格式...

1/0
22/21
19/26
2.3/14
29/0
1.3/44
85/30

第一个值是公里,它可以是整数,也可以是双倍加正斜线,最后一个值是极数,它总是整数。

此数据是通过连接两列生成的,即

select fromkm+"/"+frompole as FROM_KM from station;

fromkm和frompole在数据库中是nvarchar类型

结果应为以下格式

1/0
1.3/44
2.3/14
19/26
22/21
29/0
85/30

谢谢

尝试下一个查询,在 Substring 函数中添加带有字段名称的 order by 子句。

SELECT from km+"/"+ from pole as FROM_KM from station;
OEDER BY SUBSTRING(FROM_KM,1,2) ASC

使用 order by 在 SQL 中进行排序。请注意,由于您的数据存储为 nvarchar 您必须在排序时将其转换为 float / int (或者更好 - 更改数据库中列的数据类型) :

select fromkm +"/"+ frompole as FROM_KM 
from station
order by cast(fromkm as float), cast(frompole as int);