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

这种排序如何写

2013-07-16 
这种排序怎么写.这种排序怎么写.表STR 中的strDesc列里不是固定的,但是里面总含有特定字符.例如:随便找了s

这种排序怎么写.
这种排序怎么写.
表STR 中的strDesc列里不是固定的,但是里面总含有特定字符.

例如:
随便找了strDesc列中的几行
[Opt: +17] [Var: 27037768484] 
[Opt: +3] [Var: 202444813] 
[Opt: +1] [Var: 825] 
[Opt: +2] [Var: 825] 

我想写个排序,按照[Opt: + 后面这个数字大小排序该怎么写
[解决办法]

if object_id('[TB]') is not null drop table [TB]
go
create table [TB] (col nvarchar(100))
insert into [TB]
select '[Opt:+17] [Var:27037768484]' union all
select '[Opt:+3] [Var:202444813]' union all
select '[Opt:+1] [Var:825]' union all
select '[Opt:+2] [Var:825]'

select * from [TB]


SELECT * FROM TB 
ORDER BY CONVERT(INT,REPLACE(SUBSTRING(col,7,3),']',''))

/*
[Opt:+1] [Var:825]
[Opt:+2] [Var:825]
[Opt:+3] [Var:202444813]
[Opt:+17] [Var:27037768484]*/

[解决办法]
SELECT * FROM @str ORDER BY Convert(int,substring(REPLACE(strDesc,'[Opt: +',''),0,charindex(']',REPLACE(strDesc,'[Opt: +',''))))

把@str 直接替换成你的表名,不可以直接执行吗?

热点排行