oracle中varchar2型別與integer型別的變數進行運算

時間 2021-12-26 03:12:45

1樓:匿名使用者

varchar2能參與integer的計算必須使varchar2儲存的是數字型的字元,然後通過to_number函式轉換進行計算。

1、建立表,錄入資料:

create table t

(id int,

sal varchar2(10));

insert into t values (1,'10');

insert into t values (2,'20');

commit;

2、執行加法運算:

select id,to_number(sal)+10 from t;

3、查詢結果:

2樓:匿名使用者

不知道你是不是要在 2012-05 的基出上向前移動 1 個月份,如果是的話可以這樣寫: select to_char(add_months(to_date('2012-05','yyyy-mm'),-1),'yyyy-mm') from dual 就可以得到'2012-04'

3樓:我tm不管

declare a varchar2(20);b number;

begin

a:='2012-05';

b:=1;

dbms_output.put_line(to_char(to_date(a||'-'||b,'yyyy-mm-dd'),'yyyy-mm-dd'));

end;

oracle資料庫中,如何對某一varchar型別的列進行數**算 50

4樓:匿名使用者

我的方案:

1. 增加列:isdigit

2. 寫乙個儲存過程或者plsql塊,迴圈每行,嘗試轉換為數字(to_number),如果轉換成功,則isdigit=1,如果觸發異常,則為0

3. 寫乙個觸發器,對於新增資料,修改資料,則嘗試轉換為數字,如果轉換成功,則isdigit=1,如果觸發異常,則為0

4. 對資料進行計算時,增加條件 isdigit=1即可。

5樓:厙曼冬

只取純數字的記錄

select * from table1 where regexp_like(字段,'^[[:digit:]]+$');

oracle中欄位分別求和,oracle中欄位分別求和

可以通過sum case函式來實現,參考如下select sum case zbxpbh when 3032 then 1 else 0 end suma,sum case zbxpbh when 0000 then 1 else 0 end sumb,sum case zbxpbh when 30...

mysql中varchar20我的資料長度超過了

mysql中 varchar 20 資料長度超過了是設定錯誤造成的,解決方法為 1 通過my.ini linux下為my.cnf 的配置檔案進行修改。一般my.ini檔案在安裝檔案的根目錄下。2 系統是windows10,安裝目錄下沒有my.ini檔案。3 仔細找了一下,my.ini檔案在progr...

oracle中insertintoselect和selectinto的區別

insert into select是一條sql語句。select into 是pl sql的一條語句。oracle 中select into是什麼意思 這是乙個複製表資料的操作。建立aaa表,這裡沒有定義aaa表的字段以及型別,而是用select from bbb,這就是把bbb裡面所有的字段包含...