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

時間 2022-07-23 09:47:53

1樓:匿名使用者

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;

2樓:最後天使毀滅

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

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

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

3樓:匿名使用者

要先建立乙個函式:

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

isl_t number;

begin

l_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('100.01') from dual;

select isnumber('a123') from dual;

oracle中如何選擇每天某個時間段中的資料,如每天7點到11點的資料

你可以把時間全部to char成字串型別,然後根據長度判斷,如果是只精確到天的話,長度肯定是10,把長度為10的字段修改為精確到每天8點。to date to char qsrq,yyyy mm dd 08 00 00,yyyy mm dd hh24 mi ss 1,表裡需要有乙個date型別的字段...

oracle查詢日期字段大於某個日期值時sql語句怎麼寫

在之前已經大概了解過mysql資料庫和學過相關的oracle知識點,但是太久沒用過oracle了,就基本忘了.印象中就只有基本的sql語句和相關一些概念.寫下本博文的原因就是記載著oracle一些以前沒注意到的知識點.以後或許會有用.例項與資料庫概念 oracle資料庫伺服器由兩部分組成 例項 理解...

Oracle 11g中如何授權一張表某個欄位的select許可權給另外使用者

無法授權單個欄位給某使用者,可以使用建立這個表的單個欄位的檢視,將檢視授權給使用者。如,emp表如下 現要將empno欄位賦權給system使用者,首先要建立乙個檢視。create view v emp as select empno from emp 然後將檢視授權給system使用者,語句如下 ...

jquery判斷元素是否有某個屬性

兩種方式,但稍有區別。具體 如下 原型鏈上繼承過來的屬性無法通過hasownproperty檢測到,返回false。需注意的是,雖然in能檢測到原型鏈的屬性,但for in通常卻不行。當然重寫原型後for in在ie9 firefox safari chrome opera下是可見的。可以參考 fo...

怎麼檢視 oracle中某個表空間裡的表名

同意上面的答案,但是注意的是,表名 如果是英文的,要大寫才可以。oracle中如何查詢所有表及其所使用的表空間 oracle中查詢所有表及其所使用的表空間可以使用sql語句 select segment name,sum bytes 1024 1024 from user extents group...