求助:这个查询语句怎么写
我有一个表,其中一列是这样的数据
st-2003-001
st-2004-034
st-2002-089j
st-2003-36
我想按照这列数据的最后面的几个数字排序,结果是这样的
st-2003-001
st-2004-034
st-2003-36
st-2002-089j
我该怎么写sql语句.
问题点数:100、回复次数:6Top
1 楼skyboy0720(曲终人散)回复于 2004-05-03 11:47:56 得分 0
upTop
2 楼zjcxc(邹建)回复于 2004-05-03 11:51:25 得分 0
select *
from 表
order by cast(reverse(stuff(reverse(right(字段,charindex('-',reverse(字段)+'-')-1))
,1,patindex('%[0-9]%',reverse(字段))-1,'')) as int)
Top
3 楼zjcxc(邹建)回复于 2004-05-03 11:51:45 得分 100
--测试
--测试数据
create table 表(字段 varchar(20))
insert 表 select 'st-2003-001'
union all select 'st-2004-034'
union all select 'st-2002-089j'
union all select 'st-2003-36'
go
--查询
select *
from 表
order by cast(reverse(stuff(reverse(right(字段,charindex('-',reverse(字段)+'-')-1))
,1,patindex('%[0-9]%',reverse(字段))-1,'')) as int)
go
--删除测试
drop table 表
/*--测试结果
字段
--------------------
st-2003-001
st-2004-034
st-2003-36
st-2002-089j
(所影响的行数为 4 行)
--*/Top
4 楼skyboy0720(曲终人散)回复于 2004-05-03 12:01:34 得分 0
呵呵,好快,学习!Top
5 楼skyboy0720(曲终人散)回复于 2004-05-03 12:02:00 得分 0
今天不休息啊
zjcxc兄:)Top
6 楼zjcxc(邹建)回复于 2004-05-03 12:06:17 得分 0
没事,上来看看.Top




