Re: [SQL ] 請問判斷一個字串中含有英文字母的方法?

看板Database作者 (^^||)時間12年前 (2012/02/21 17:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/5 (看更多)
不好意思,我舉的例子不好,一再地引起誤會 加一道資料當例子說明會比較清楚 欄名| 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
文章代碼(AID): #1FGsIQN7 (Database)
討論串 (同標題文章)
文章代碼(AID): #1FGsIQN7 (Database)