日期:2014-05-19  浏览次数:20628 次

如何比较字符串大小
我有一组数据。格式如下
FDG-1
FDG-2
FDG-3
FDG-4
FDG-5
这样的数据如何比较大小。
因为数字前都有‘-’,
所以我想把‘-’定位再截取后面的数字进行比较,
但是不知具体怎么做。
希望哪位老大给出正确答案。




------解决方案--------------------
if object_id( 'pubs..tb ') is not null
drop table tb
go

create table tb(id varchar(10))
insert into tb(id) values( 'FDG-1 ')
insert into tb(id) values( 'FDG-2 ')
insert into tb(id) values( 'FDG-3 ')
insert into tb(id) values( 'FDG-4 ')
insert into tb(id) values( 'FDG-5 ')
go

select * from tb order by substring(id , charindex( '- ',id) + 1 , len(id))
select * from tb order by substring(id , charindex( '- ',id) + 1 , len(id)) desc

drop table tb

/*
id
----------
FDG-1
FDG-2
FDG-3
FDG-4
FDG-5

(所影响的行数为 5 行)

id
----------
FDG-5
FDG-4
FDG-3
FDG-2
FDG-1

(所影响的行数为 5 行)

*/