oracle怎麼判讀一個數是不是小數

2022-12-29 20:35:19 字數 3784 閱讀 9758

1樓:龍氏風采

select decode(instr('1', sign('1'),1, 1, 0) from dual;

返回1是整數,否則不是。

create or replace function f_isnumeric(cnt varchar2) return number asres number; flag number; beginif cnt is

null thenreturn 0;

end if; select to_number(cnt) into res from dual; select decode(instr(res, 'sign(res), 1, 1, 0) into flag from dual; if flag = 1 thenreturn 1; else return 0;

end if;

exception

when others then return 0;

end;

oracle如何判斷一個數是不是整數呢?比如3.000和3.100,如何篩選出來3.100

2樓:匿名使用者

select * from table where int-floor(int)>0 --int就是你的表欄位,floor(int)就是取整數,等同於》0

3樓:隨o天

trunc(相等是正數,否則是小數。

4樓:匿名使用者

select decode(instr('1', sign('1'),1, 1, 0) from dual;

返回1是整數,否則不是。

create or replace function f_isnumeric(cnt varchar2) return number asres number; flag number; beginif cnt is

null thenreturn 0;

end if; select to_number(cnt) into res from dual; select decode(instr(res, 'sign(res), 1, 1, 0) into flag from dual; if flag = 1 thenreturn 1; else return 0;

end if;

exception

when others then return 0;

end;

oracle如何判斷某個欄位的值是不是數字

5樓:匿名使用者

1、建立測試表,create table test_isnum(id number, value varchar2(20));

2、插入測試資料,insert into test_isnum values(1,'a');

insert into test_isnum values(2,329);

insert into test_isnum values(4,'15');

insert into test_isnum values(6,'2c');

commit;

3、查詢表中所有記錄,select t.*,rowid from test_isnum t,4、編寫sql,判斷value欄位,記錄為數字的內容,select t.*,case

when not regexp_like(value, 'd') then

'是'else

'否'end as "是否數字"

from test_isnum t;

6樓:最後天使毀滅

1. 這個問題itpub已討論很久,你搜一下。

2.不使用儲存過程,oracle沒有isnumber()之類的函式,因此至少你得寫一個類似isnumber()的函式,這就是儲存過程。

3. 在這個函式中通過使用 to_number() 並捕捉異常來確定是否是數字。

7樓:匿名使用者

要先建立一個函式:

create or replace function isnumber(p_column in varchar2) return number

isl_t number;

beginl_t :=to_number(p_column) ;

return 1;

exception when others thenreturn 0;

end;測試,如果返回0,則代表不是數字,如果返回值為1則代表是數字。

select isnumber('100') from dual;

select isnumber('-100') from dual;

select isnumber(''from dual;

select isnumber('a123') from dual;

oracle資料庫,查詢某個欄位中每個資料對應小數點後面有幾位

oracle中查詢結果中有小數點

8樓:

你這個問題很好解決,你這個就是因為數值太大了,資料庫就採用科學計數法了。

比如你查詢上圖結果的select語句是:

select * from table;

只要在查詢前執行:

col item format 999999999999999999999999999;

之後再執行查詢語句,應該數值就是你想要的數值了。(ps:999999999999999999999999999這個數值可以根據你列的長度來設定)

9樓:匿名使用者

這不是科學計數法了嗎?

你不是用什麼檔案匯入進去的資料吧?

你這幾個欄位是什麼型別?不行就。

10樓:永遠左手

你這幾個欄位是number型的 由於值太大了 系統自動轉換成科學計數法。這是正常的。

hr_s_pre 正解。

oracle 裡 怎麼查詢欄位資料 是有小數點的,且小數點後面保留的是三位小數的資料 5

11樓:北京小郎中

mod(amount, <0 可以查到小數點超過兩位的。

12樓:彌訪冬

你是要查出這些所有欄位都是保留三位小數的麼?

如果是,可以用四個下面這個條件,用and ,如果不是,可以補充一下你的需求。

(length(,'2 and instr(,'0)

注:這邊用instr(,'0是因為要過濾那些沒有小數點的情況。

oracle怎麼在字元欄位中查出只包含數字的資料

13樓:匿名使用者

如果你的條件不允許你寫plsql函式的話,就用正規表示式,如下:

select *

from table

where regexp_substr(check, '0-9\.\d*\.d+$'is not null;

14樓:

你應該希望提取的欄位只要含有數字就提出,剔除空和不含數字的字串。

select * from table where regexp_substr(check,'[0-9]+'is not null

15樓:吾兒樑龍慶

select * from tablename where check<> regexp_replace(check,'[0-9]')

目前我就想到這個方法。

在三位數中 最大的一個數是 最小的一個數是

最大 999,最小 100 很高興為您解答!是 最大 999,最小 100!望採納哦!在三位數中,最小的奇數是 最小的偶數是 最大的偶數是 填什麼數 三位數中,最小的奇數101,最小偶數就是100。最大偶數998,這樣填寫。用9.5.0組成的沒有重複數字的三位數中,最大的數是 最小的數是 只讀一個零...

一個數被3 4 5除都餘一,這個數最小是幾?

解析 bai 首先找出3,du4,5的最小公倍數。答 這zhi個數最小是61.驗算 dao 61 3 20餘回1 61 4 15餘1 61 5 12餘1 所以答答案是正確的。此題主要考查對 因數,倍數,約數,公因數 公約數 公倍數 等考點的理解。a能被數b整除,a就叫做b的倍數,b就叫做a的因數或約...

5是30的56,這個數是多少,一個數的15是30的56,這個數是多少

12530的5 6為25,25為這個數的1 5,則這個數為25的5倍,即125 1 x 1 5 30 5 6 x 5 25 x 25 5 x 125 2 21 4 9 2 3 28 3 2 3 56 9 21的4 9的2 3是56 9 20比一個數少5,這個數是多少 25。解析 20比一個數少5,則...