如何過濾出資料庫中欄位不含英文字母的記錄 |
答題得分者是:firesu
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
請問各位:
我想找出資料庫某一欄位是6碼而且不含英文字母(即只含數字)的記錄, 查網有找到以下的做法 select * from CARGO where CHAR_LENGTH(cargono) = 6 and cargono not like '%[^0-9]%' 前段沒有問題, 但後段似乎一直起不了作用, 我使用的資料庫 firebird 2.1x版 因為後段的語法, 在 firebird 上似乎把 [^0-9] 當成了一串字串, 而無法知道 [...] 括號內的是識別字功能 或者 firebird 有其他的寫法, 目前網路上是沒找著... |
firesu
中階會員 發表:26 回覆:28 積分:55 註冊:2004-12-27 發送簡訊給我 |
試看看
and cargono similar to '[:DIGIT:]{6}' ===================引 用 P.D. 文 章=================== 請問各位: 我想找出資料庫某一欄位是6碼而且不含英文字母(即只含數字)的記錄, 查網有找到以下的做法 select * from CARGO where CHAR_LENGTH(cargono) = 6 and cargono not like '%[^0-9]%' 前段沒有問題, 但後段似乎一直起不了作用, 我使用的資料庫 firebird 2.1x版 因為後段的語法, 在 firebird 上似乎把 [^0-9] 當成了一串字串, 而無法知道 [...] 括號內的是識別字功能 或者 firebird 有其他的寫法, 目前網路上是沒找著... |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
herbert2
尊榮會員 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
天下事無奇不有,幾乎不可能僅靠原廠提供的原始指令、函數就能達成目的;
所以原廠也不斷開發新版,增加新的 Class、Method、Function、Procedure。 既然目前的版本缺少所需的功能,那就用既有的功能自行組合出適用的 Function 或 Procedure, 那天升級到新版,這些自創的一樣能移植上去,不一定非得使用相同作用的新版功能去取代舊版的自創 Function 或 Procedure 啊! 例如:要判斷一個 Column 的數值為正數、負數、零、NULL,目前有簡易的現成 Function 可用嗎? 那自製一個 Return 1、-1、0、-2 的 Function 來用不行嗎? SELECT * FROM mytable WHERE MyFuncion(MyTable.Column) >= 0 不就可取代 SELECT * FROM mytable WHERE NVL(MyTable.Column,-2) >= 0 所謂山不轉路轉吧! |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
herbert2
尊榮會員 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
|
wsx1688
一般會員 發表:0 回覆:0 積分:0 註冊:2024-04-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |