这种排序怎么解决啊,找遍了论坛都没有相关的。
比如:
name code
wang 二
chen 一
liu 八
yang 三
kao 六
wan 五
iu 四
wer 七
要排成
name code
chen 一
wang 二
yang 三
iu 四
wan 五
kao 六
wer 七
liu 八
那要是code是(一),(二),(三)等,又要怎么排序?
问题点数:20、回复次数:9Top
1 楼lsqkeke(可可)回复于 2006-03-06 15:30:36 得分 2
select * from tb
order by charindex(','+code+',',',一,二,三,四,五,六,气,八,九,')Top
2 楼lsqkeke(可可)回复于 2006-03-06 15:33:08 得分 2
自己指定排序顺序的方法就是这样:
declare @t varchar(20)
set @t='(一),(二),(三)'
select * from tb
order by charindex(','+code+',',','+@t+',')Top
3 楼zyf0300106(iceman)回复于 2006-03-06 16:31:11 得分 0
select * from tb
order by charindex(','+code+',',',一,二,三,四,五,六,气,八,九,')
谢谢两位,请问这语句是什么意思啊,指点一下,看得不是很明白Top
4 楼wangdehao(找找找(现在很幸福))回复于 2006-03-06 16:42:30 得分 2
CHARINDEX
返回字符串中指定表达式的起始位置。
select *,排序=charindex(','+code+',',',一,二,三,四,五,六,气,八,九,')
from tb
order by charindex(','+code+',',',一,二,三,四,五,六,气,八,九,')
--这样看一下Top
5 楼mislrb(上班看看早报,上上CSDN,下班看看电影)回复于 2006-03-06 16:42:47 得分 0
先执行看下结果,应该会理解到的,
学习Top
6 楼zyf0300106(iceman)回复于 2006-03-06 16:47:25 得分 0
我只是举例说只有一到八,我现在这边的code有的很长啊,可能一到一百,两百啊,要怎么处理Top
7 楼zjcxc(邹建)回复于 2006-03-06 18:04:37 得分 12
楼主是按什么顺序? 中文的一....十五之类? 还是自定义顺序
简单的办法, 可以专门建立为你的一....十五之类建立一个顺序表:
序号 值
1 一
2 二
.....
100 一百
然后关联就可以排序了:
select a.*
from 你的表 a, 顺序表 b
where a.code=b.值
order by b.序号Top
8 楼zjcxc(邹建)回复于 2006-03-06 18:05:08 得分 2
按照这样的思路, 你想实现怎样的排序都行.Top
9 楼zyf0300106(iceman)回复于 2006-03-07 12:59:56 得分 0
楼上的思路不错,但是你要怎么建顺序表,几百条的话。Top




