Re: [SQL ] 請問判斷一個字串中含有英文字母的方法?
不好意思,我舉的例子不好,一再地引起誤會
加一道資料當例子說明會比較清楚
欄名| 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
討論串 (同標題文章)
完整討論串 (本文為第 4 之 5 篇):