ITPUB??ì3
12月微软Hyper-V虚拟化沙龙主题征集
ITPUB论坛 » Oracle开发 » 求一个中文排序方法,谢谢!

标题: [PL/SQL] 求一个中文排序方法,谢谢!
离线 linuxroot
初级会员



精华贴数 0
个人空间 0
技术积分 180 (10489)
社区积分 0 (582520)
注册日期 2005-8-26
论坛徽章:1
ITPUB新首页上线纪念徽章     
      

发表于 2008-9-17 21:34 
求一个中文排序方法,谢谢!

SELECT * FROM TEMP ORDER BY 发送状态;
-------------------------------------
发送状态        东城区        西城区        崇文区        宣武区        朝阳区        丰台区        石景山区        海淀区        合计
成功        1,473        1,113        297        103        875        1,037        7        576        5,481
发送中        144        3        14        0        30        0        11        8        210
合计        1,619        1,116        324        103        1,125        1,224        47        584        6,142
失败        2        0        13        0        220        187        29        0        451

想按照如下顺序排序,指定按照“发送状态”字段“成功”-“发送中”,“失败”,"合计"的顺序,即:
--------------------------------------
发送状态        东城区        西城区        崇文区        宣武区        朝阳区        丰台区        石景山区        海淀区        合计
成功        1,473        1,113        297        103        875        1,037        7        576        5,481
发送中        144        3        14        0        30        0        11        8        210
失败        2        0        13        0        220        187        29        0        451
合计        1,619        1,116        324        103        1,125        1,224        47        584        6,142

======================
PS:主要目的是想根据指定字段的几个值,手动排序,如上字段“发送状态”,指定排序按照(“成功”-“发送中”-“失败”-"合计")的顺序排序


只看该作者    顶部
在线/呼叫 newkid
资深新手
老程序员


来自 银河系
精华贴数 2
个人空间 0
技术积分 2756 (579)
社区积分 0 (121048)
注册日期 2004-6-26
论坛徽章:5
生肖徽章2007版:马生肖徽章2007版:鸡2008北京奥运纪念徽章:垒球2008北京奥运纪念徽章:羽毛球  
      

发表于 2008-9-17 21:52 
SELECT * FROM TEMP ORDER BY DECODE(发送状态,'成功',1,'发送中',2,....)


__________________
只看该作者    顶部
在线/呼叫 homeworld80
天使之月


精华贴数 0
个人空间 112
技术积分 813 (2381)
社区积分 3 (22344)
注册日期 2006-12-1
论坛徽章:4
铁扇公主授权会员2008北京奥运纪念徽章:帆船2008北京奥运纪念徽章:足球  
      

发表于 2008-9-17 22:11 
正解


__________________
不畏风霜向晚欺
独开众卉已凋时
只看该作者    顶部
离线 jvkojvko
小马哥


精华贴数 1
个人空间 0
技术积分 6044 (226)
社区积分 61169 (7)
注册日期 2007-9-10
论坛徽章:44
地主之星地主长老紫蜘蛛月度论坛发贴之星ITPUB评论家ITPUB评论家
BLOG每周发帖之星在线时间在线时间   

发表于 2008-9-17 22:13 
LS正解,用decode实现


__________________
马无夜草不肥,人无外财不富。
-------------------------------
小店:http://shop34160316.taobao.com/
欢迎光临,店家是俺GF
只看该作者    顶部
在线/呼叫 dingjun123
djゆoracle


来自 china
精华贴数 3
个人空间 0
技术积分 1913 (912)
社区积分 15 (8980)
注册日期 2006-7-28
论坛徽章:2
2008北京奥运纪念徽章:铁人三项ITPUB新首页上线纪念徽章    
      

发表于 2008-9-17 23:14 
好像前面有人问过哦,这方法比较牛!


__________________
软件体系架构要以数据库为中心,如oracle,可以充分利用数据库的特性,帮助解决复杂的问题。一个常用的规则是:
如果能用单条sql解决,ok
如果不能用单条sql解决,考虑使用PL/SQL
如果不能用PL/SQL解决,考虑使用java存储过程
如果不能用java解决,那么考虑使用c外部过程
如果c都解决不了,那么考虑一下放弃吧
只看该作者    顶部
离线 smallnavy
平常心


精华贴数 1
个人空间 3
技术积分 2407 (664)
社区积分 3478 (409)
注册日期 2003-9-2
论坛徽章:55
生肖徽章2007版:龙2008北京奥运纪念徽章:摔跤生肖徽章:龙   
      

发表于 2008-9-17 23:30 


QUOTE:
原帖由 newkid 于 2008-9-17 21:52 发表
SELECT * FROM TEMP ORDER BY DECODE(发送状态,'成功',1,'发送中',2,....)




__________________
竹仗芒鞋轻胜马,一蓑烟雨任平生
只看该作者    顶部
离线 linuxroot
初级会员



精华贴数 0
个人空间 0
技术积分 180 (10489)
社区积分 0 (582520)
注册日期 2005-8-26
论坛徽章:1
ITPUB新首页上线纪念徽章     
      

发表于 2008-9-18 08:49 
OK THX


只看该作者    顶部
离线 阿日
2M-Never give up


精华贴数 0
个人空间 501
技术积分 1787 (945)
社区积分 1155 (896)
注册日期 2004-1-4
论坛徽章:22
ITPUB元老铁扇公主红孩儿授权会员2008北京奥运纪念徽章:游泳2008北京奥运纪念徽章:曲棍球
2008北京奥运纪念徽章:马术2008北京奥运纪念徽章:棒球2008北京奥运纪念徽章:排球2008北京奥运纪念徽章:摔跤2008北京奥运纪念徽章:柔道2008北京奥运纪念徽章:垒球

发表于 2008-9-18 09:02 
学习了,补充点排序的方法(虽不适合楼主的要求,也许以后会用到)
在oracle9i中新增了按照拼音、部首、笔画排序功能。设置NLS_SORT值
SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序
SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序
SCHINESE_PINYIN_M 按照拼音排序,系统的默认排序方式为拼音排序
select * from test1 order by nlssort(status,'NLS_SORT=SCHINESE_PINYIN_M');

[ 本帖最后由 阿日 于 2008-9-18 09:04 编辑 ]


__________________
我欲将心向明月,奈何明月照沟渠.
过去的都过去了,大不了从头再来,别回头,向前看!
http://blog.csdn.net/zxf_feng
只看该作者    顶部
离线 limangdu
初级会员


精华贴数 0
个人空间 0
技术积分 224 (8686)
社区积分 0 (1509279)
注册日期 2007-8-10
论坛徽章:0
      
      

发表于 2008-9-18 10:23 


QUOTE:
原帖由 阿日 于 2008-9-18 09:02 发表
学习了,补充点排序的方法(虽不适合楼主的要求,也许以后会用到)
在oracle9i中新增了按照拼音、部首、笔画排序功能。设置NLS_SORT值
SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序
SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序
SCHINESE_PINYIN_M 按照拼音排序,系统的默认排序方式为拼音排序
select * from test1 order by nlssort(status,'NLS_SORT=SCHINESE_PINYIN_M');




只看该作者    顶部
离线 一觉
风二中


精华贴数 0
个人空间 0
技术积分 1197 (1522)
社区积分 18752 (83)
注册日期 2007-12-11
论坛徽章:181
生肖徽章2007版:鼠生肖徽章2007版:兔    
      

发表于 2008-9-18 11:07 


QUOTE:
原帖由 newkid 于 2008-9-17 21:52 发表
SELECT * FROM TEMP ORDER BY DECODE(发送状态,'成功',1,'发送中',2,....)

  这个方法不错


__________________

不爱那么多,只爱一点点
别人的爱情像海深我的爱情浅
只看该作者    顶部
相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问