如何在 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);
我在对数据类型为 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);