作者noabstersion (^^||)
看板Database
标题Re: [SQL ] 请问判断一个字串中含有英文字母的方法?
时间Tue Feb 21 17:32:08 2012
不好意思,我举的例子不好,一再地引起误会
加一道资料当例子说明会比较清楚
栏名| aaa
------------------------
| A01
| B01
| 001
| 201 <---新增一笔
| 002
| 0A1
| 0B1
只用order by aaa会变成如下(含英文字的资料和纯数字的资料一起比):
栏名| aaa
------------------------
| 001
| 002
| 0A1
| 0B1
| 201
| A01
| B01
而我想要的是"含英文字母"的排在"纯数字"的资料之後,如下:
栏名| aaa
------------------------
| 001
| 002
| 201
| 0A1 ----以下均为含英文字母的资料
| 0B1
| A01
| B01
所以想问除了自己写stored function回传值来提供order by 指令判断之外,
有没有资料库内建的function来提供判断一个字串是否含有英文字母.
ps.後来我是自己写一个function回传值以供排序使用,
但是觉得方法不好.^^|| 如果有人想要我再po吧.
※ 引述《TeemingVoid (TeemingVoid)》之铭言:
: ※ 引述《noabstersion (^^||)》之铭言:
: : Oracle DB:
: : 想针对某栏排序,先不含英文的,再含英文的,
: : 原内容如下:
: : 栏名| aaa
: : ------------------------
: : | A01
: : | B01
: : | 001
: : | 002
: : | 0A1
: : | 0B1
: : 想排成
: : 栏名| aaa
: : ------------------------
: : | 001
: : | 002
: : | 0A1
: : | 0B1
: : | A01
: : | B01
: : 请问有什麽方法?
: 推 TeemingVoid:select .... order by aaa 吗?! 02/21 13:35
: → noabstersion:不好意思,我没表达清楚,我是想问有没有function可以 02/21 14:10
: → noabstersion:回传值分办出是否有含英文字,让我可以先将纯数字排前 02/21 14:11
: → noabstersion:面,含英文的排後面. 02/21 14:16
: 这下子换成我比较迷糊了... @@ 字串排序预设原本就是数字在前英文字母在後啊。
: 以您的例子来说:
: create table testing (aaa varchar2(10));
: insert into testing values ('A01');
: insert into testing values ('B01');
: insert into testing values ('001');
: insert into testing values ('002');
: insert into testing values ('0A1');
: insert into testing values ('0B1');
: select * from testing order by aaa;
: 结果的次序就跟您上头提问的排法一様啊!? 可能我误会您的意思了。
: 或者,请看一下这篇文章,文章中後段似乎有您要的东西:
: http://ppt.cc/Z;N@
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.67.56.61