首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

排序有关问题.以下数据怎么实现排序

2012-03-06 
排序问题.以下数据如何实现排序.我有一字段.值为a-b0-1-cb-c10-20-ba-c12-5-ca-c1-4-b我想按第二个- 与

排序问题.以下数据如何实现排序.
我有一字段.值为
a-b0-1-c
b-c10-20-b
a-c12-5-c
a-c1-4-b

我想按第二个   "- "与第三个 "- "之间的数值为排序列.
结果要为:
a-b0-1-c
a-c1-4-b
a-c12-5-c
b-c10-20-b
相当于为   1,4,5,20   排序,望高手帮助.

[解决办法]
declare @a table(a varchar(20))
insert @a select 'a-b0-1-c '
union all select 'b-c10-20-b '
union all select 'a-c12-5-c '
union all select 'a-c1-4-b '

select *
from @a
order by
cast(
substring(a,
charindex( '- ',a,patindex( '%-% ',a)+1)+1,
charindex( '- ',a,charindex( '- ',a,patindex( '%-% ',a)+1)+1)-charindex( '- ',a,patindex( '%-% ',a)+1)-1)
as
int
)
--result
/*
a
--------------------
a-b0-1-c
a-c1-4-b
a-c12-5-c
b-c10-20-b

(所影响的行数为 4 行)
*/

热点排行
Bad Request.