国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle中判斷字段是否為數字

2024-08-29 13:59:01
字體:
來源:轉載
供稿:網友

  在我們平常的開發中可能會遇到這樣的問題,就是判斷某一列是否全部由數字組成,我們都知道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支持regexp_like函數,推薦使用正則的方式,如果不支持則用trim+translate這種方式。


注:相關教程知識閱讀請移步到oracle教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丽江市| 临海市| 玉林市| 布拖县| 济南市| 商城县| 皮山县| 蓬莱市| 黄平县| 延津县| 康乐县| 栾城县| 东兰县| 博白县| 石屏县| 任丘市| 龙江县| 天镇县| 涞源县| 个旧市| 洛南县| 临沧市| 灵寿县| 商洛市| 房山区| 罗江县| 呼和浩特市| 台中市| 肇庆市| 苗栗县| 太保市| 平顺县| 宁武县| 满城县| 东安县| 海盐县| 望都县| 浦城县| 宁强县| 郧西县| 盐山县|