我在用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
谢谢
答案 0 :(得分:3)
使用order by
在SQL中进行排序。请注意,由于您的数据存储为nvarchar
,因此在排序时必须将其转换为float
/ int
(或者更好的是-更改数据库中列的数据类型) :
select fromkm +"/"+ frompole as FROM_KM
from station
order by cast(fromkm as float), cast(frompole as int);
答案 1 :(得分:0)
尝试下一个查询,在Substring函数内添加带有字段名称的order by子句。
SELECT from km+"/"+ from pole as FROM_KM from station;
OEDER BY SUBSTRING(FROM_KM,1,2) ASC