首頁 > 資料庫 > Oracle > 主體

oracle怎麼判斷資料是否為數字類型

WBOY
發布: 2022-04-07 11:27:58
原創
22543 人瀏覽過

方法:1.利用「trim(translate(column,'0123456789',' ')) is NULL;」判斷資料是否為數字;2、利用「regexp_like(column,'^[0-9 ] [0-9]$');」判斷資料是否為數字。

oracle怎麼判斷資料是否為數字類型

本教學操作環境:Windows10系統、Oracle 11g版、Dell G3電腦。

oracle怎麼判斷資料是否為數字類型

select*from 表名wherere 在我們平常的開發中可能會遇到這樣的問題,就是判斷某一列是否全部由數字組成,我們都知道oracle並沒有提供我們這樣一個現成的函數,那麼根據我的經驗我總結了兩個行之有效的方法(列名:column,表名:table):

1.使用trim translate函數:

程式碼如下:

select * from table where trim(translate(column,'0123456789',' ')) is NULL;
登入後複製

  這裡要注意的是:translate函數的第三個參數是一個空格,不是'' , 因為translate的第三個參數如果為空的話,那麼永遠返回'',這樣的就不能達到過濾純數字的目的。

這樣把所有的數字都轉換為空格,如果全部是由數 構成,那麼一旦trim後面自然是空,就實現了上述目標。當然如果想排除空項的話,可以這樣寫:

程式碼如下:

select * from table where trim(translate(nvl(column,'x'),'0123456789',' ')) is NULL;--x 表示任何'0-9'以外的字符。
登入後複製

2.使用regexp_like函數:

程式碼如下:

select * from table where regexp_like(column,'^[0-9]+[0-9]$');
登入後複製

這裡要注意的是:regexp_like函數不是在所有的oracle版本中都能使用的。

regexp_like是oracle支援正規表示式的四個函數:regexp_like,regexp_replace,regexp_instr,regexp_substr中的 一個,有關這方面更加詳細信息,請關注相關文件。

推薦教學:《Oracle影片教學

以上是oracle怎麼判斷資料是否為數字類型的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板