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

怎么对这样的字段分析后排序

2012-01-24 
如何对这样的字段分析后排序?我做系统的时候,有一个表,假设为test,里面有两个字段,因为数据格式特殊不知道

如何对这样的字段分析后排序?
我做系统的时候,有一个表,假设为test,里面有两个字段,因为数据格式特殊不知道怎样排序,请大侠指点。
字段   MemberScore                           HasConvert
            00|00|00                                 0
            02|12|24                                 25
            04|20|88                                 33    
说明:MemberScore里的格式的意思是会员的积分由3个固定的部分组成:字段里的数据是各个部分的分数用|隔开组合存储在字段里,HasConvert是已经兑换的分数,现在要求写个SQL将会员按照分数从高到低排列输出,不知道怎样写,请指点一二,谢谢!

[解决办法]
--上为定位的取法.下为不定位的取法.

--创建测试数据
create table tb(MemberScore varchar(10),HasConvert int)
insert into tb values( '00|00|00 ',0)
insert into tb values( '02|12|24 ',25)
insert into tb values( '04|20|88 ',33)
select cast(left(MemberScore,charindex( '| ',MemberScore)-1) as int)+
cast(substring(MemberScore,charindex( '| ',MemberScore)+1 , charindex( '| ',MemberScore,charindex( '| ',MemberScore)+1) - charindex( '| ',MemberScore) - 1) as int)+
cast(reverse(left(reverse(MemberScore),charindex( '| ',reverse(MemberScore)) -1)) as int) -
HasConvert as 目前分数
from tb
order by 目前分数
drop table tb
--结果
/*
目前分数
-----------
0
13
79
(所影响的行数为 3 行)
*/

热点排行