在数据表中排序

时间:2011-06-23 07:54:21

标签: c# sorting datatable

我有一个数据库类

中的记录列表
D1.1: First
D2.12: second
D1.14: third
D2.8: fourth
D2.2: fifth
D2.3: fifth
D1.7: fifth
D2: fifth
D1.5: fifth

我应该如何考虑D的代码,如1.1,2.12。 1.14等?

所需的输出应低于。

D1.1: First  
D1.14: third  
D1.5: fifth
D1.7: fifth    
D2: fifth
D2.12: second
D2.2: fifth
D2.3: fifth
D2.8: fourth

1 个答案:

答案 0 :(得分:1)

从您的帖子中不完全清楚数据在实际表中的位置,但是如果它在格式化的字段中,那么您可以使用SUBSTRING进行排序。这是一个例子:

DECLARE @test AS TABLE (
data varchar(50)
)

INSERT @test VALUES ('D1.1: First')
INSERT @test VALUES ('D2.12: second')
INSERT @test VALUES ('D1.14: third')
INSERT @test VALUES ('D2.8: fourth')
INSERT @test VALUES ('D2.2: fifth')
INSERT @test VALUES ('D2.3: fifth')
INSERT @test VALUES ('D1.7: fifth')
INSERT @test VALUES ('D2: fifth')
INSERT @test VALUES ('D1.5: fifth')

SELECT data FROM @test
ORDER BY SUBSTRING(data,2,CHARINDEX(':',data,0)-2)

结果:

data
--------------------------------------------------
D1.1: First
D1.14: third
D1.5: fifth
D1.7: fifth
D2: fifth
D2.12: second
D2.2: fifth
D2.3: fifth
D2.8: fourth