Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1702907
  • 博文数量: 136
  • 博客积分: 10021
  • 博客等级: 上将
  • 技术积分: 3261
  • 用 户 组: 普通用户
  • 注册时间: 2007-01-22 11:26
文章分类

全部博文(136)

文章存档

2010年(1)

2009年(26)

2008年(109)

我的朋友

分类: Oracle

2009-03-28 18:58:18

一位同事问这样的小需求,一个字段中存储了很多的汉字,其中每一行中总有一个汉字是数字,比如:一、二、三、……之类的。如何按照这些数字排序?用一个case表达式就可以了(呵呵,貌似case表达式我贴过好几篇了)。
 
下面是一个小测试:
 
SQL> select * from test_n;
 
A
----------
速度达到的三阿胡德夫但是
的一大连
是的四阿里阿斯
士大夫的二我饿瑞
 
SQL> SELECT CASE
  2           WHEN instr(a, '一') > 0 THEN 1
  3           WHEN instr(a, '二') > 0 THEN 2
  4           WHEN instr(a, '三') > 0 THEN 3
  5           WHEN instr(a, '四') > 0 THEN 4
  6         END order_col, a
  7    FROM test_n
  8   ORDER BY order_col;
 
 ORDER_COL A
---------- ----------
              1  的一大连
              2  士大夫的二我饿瑞
              3  速度达到的三阿胡德夫但是
              4  是的四阿里阿斯
 
不过总感觉有点笨拙,应该有更好的办法实现。
阅读(1838) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~