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裡面所有的字段包含...