Oracle中判斷字段是否為數字

2022-09-22 00:24:07 字數 662 閱讀 5899

在我們平常的開發中可能會遇到這樣的問題,就是判斷某一列是否全部由數字程式設計客棧組成,我們都知道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'),'01ntonbytvy23456789',' ')) is null;--x 表示任何'0-9'以外的字元。

2.使用regexp_like函式:

複製** **如下:

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

Oracle中判斷字段是否為數字

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

Oracle中判斷字段是否為數字(能轉化為正整數)

oracle並沒有給我們提供這樣乙個現成的函式 可行的做法 方法1 使用trim translate函式 select from 表 where trim translate 字段,0123456789 is notnull 方法2 使用regexp like函式 select from 表 whe...

mysql 判斷字段是否為null

sql中有isnull方法,介紹如下 isnull 使用指定的替換值替換 null。語法isnull check expression replacement value 引數check expression 將被檢查是否為 null的表示式。check expression 可以是任何型別的。re...