最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Oracle中判斷字段是否為數(shù)字

 更新時(shí)間:2016年05月24日 10:04:03   作者:秦風(fēng)  
本文分別介紹使用trim+translate函數(shù)或regexp_like函數(shù)判斷表中的某個(gè)字段是否為數(shù)字的方法,希望對(duì)大家有所幫助。

  在我們平常的開(kāi)發(fā)中可能會(huì)遇到這樣的問(wèn)題,就是判斷某一列是否全部由數(shù)字組成,我們都知道oracle并沒(méi)有給我們提供這樣一個(gè)現(xiàn)成的函數(shù),那么根據(jù)我的經(jīng)驗(yàn)我總結(jié)了兩個(gè)行之有效的方法(列名:column,表名:table):

1.使用trim+translate函數(shù):

復(fù)制代碼 代碼如下:
select * from table where trim(translate(column,'0123456789',' ')) is NULL;

  這里要注意的是:translate函數(shù)的第三個(gè)參數(shù)是一個(gè)空格,不是'', 因?yàn)閠ranslate的第三個(gè)參數(shù)如果為空的話,那么永遠(yuǎn)返回'',這樣的就不能達(dá)到過(guò)濾純數(shù)字的目的。這樣把所有的數(shù)字都轉(zhuǎn)化為空格,如果全部是由數(shù) 構(gòu)成,那么一旦trim后自然是空,實(shí)現(xiàn)了上述目標(biāo)。當(dāng)然如果想排除空項(xiàng)的話,可以這樣寫(xiě):

復(fù)制代碼 代碼如下:
select * from table where trim(translate(nvl(column,'x'),'0123456789',' ')) is NULL;--x 表示任何'0-9'以外的字符。

2.使用regexp_like函數(shù):

復(fù)制代碼 代碼如下:
select * from table where regexp_like(column,'^[0-9]+[0-9]$');

  這里要注意的是:regexp_like函數(shù)不是在所有的oracle版本中 都能使用的。regexp_like是oracle支持正則表達(dá)式的四個(gè)函數(shù):regexp_like,regexp_replace,regexp_instr,regexp_substr中的 一個(gè),有關(guān)這方面更加詳細(xì)信息,請(qǐng)關(guān)注相關(guān)文檔。

總結(jié)一下,如果oracle支持regexp_like函數(shù),推薦使用正則的方式,如果不支持則用trim+translate這種方式。

相關(guān)文章

最新評(píng)論

锡林郭勒盟| 淮北市| 安吉县| 庆安县| 定南县| 伊金霍洛旗| 东海县| 花莲县| 石门县| 申扎县| 黔江区| 九江县| 布尔津县| 林芝县| 颍上县| 垫江县| 合水县| 图片| 永春县| 永定县| 上饶市| 南江县| 泾源县| 本溪| 额敏县| 屯门区| 正定县| 西乌珠穆沁旗| 安达市| 宝应县| 镇安县| 凤凰县| 滁州市| 邻水| 桐庐县| 嘉义市| 麻江县| 长宁区| 云南省| 阳曲县| 微山县|