在我們平常的開發中可能會遇到這樣的問題,就是判斷某一列是否全部由數字組成,我們都知道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]$
');
Oracle中判斷字段是否為數字
在我們平常的開發中可能會遇到這樣的問題,就是判斷某一列是否全部由數字程式設計客棧組成,我們都知道oracle並沒有給我們提供這樣乙個現成的函式,那麼根據我的經驗我總結了兩個行之有效的方法 列名 column,表名 table 1.使用trim translate函式 複製 如下 select fro...
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...