1. 程式人生 > >Oracle資料庫將各個欄位的空值改為0

Oracle資料庫將各個欄位的空值改為0

表資料有空值的情況,一般希望把數值型別的欄位直接賦值為0而不是空值,這裡使用儲存過程實現。

  • 首先建立表testnull結構如下:
SQL> describe testnull;
Name Type   Nullable Default Comments 
---- ------ -------- ------- -------- 
NUM1 NUMBER Y                         
NUM2 NUMBER Y  
  • 迴圈插入資料:
BEGIN
    FOR v_count IN 1..100 LOOP
      INSERT INTO
testnull(num1) Values(1);
END LOOP; END;

這個時候的num2欄位均為空值:
這裡寫圖片描述

  • 之後使用指令碼將對應的數值型別的欄位空值轉為0:
DECLARE
  v_sql VARCHAR2(1000);
BEGIN 
  FOR rec IN (SELECT a.* FROM user_tab_columns a 
                     WHERE a.TABLE_NAME='TESTNULL' AND a.DATA_TYPE='NUMBER' AND a.NULLABLE='Y')
  LOOP
    v_sql:='update '
||rec.table_name||' set ' ||rec.column_name||'=0 where '||rec.column_name||' is null';
EXECUTE IMMEDIATE v_sql; END LOOP; END;

檢視資料:
這裡寫圖片描述

相關推薦

Oracle資料庫各個0

表資料有空值的情況,一般希望把數值型別的欄位直接賦值為0而不是空值,這裡使用儲存過程實現。 首先建立表testnull結構如下: SQL> describe testnull; Name Type Nullable Default

通過反射陣列中的元素給一個物件中的各個

現有一個附加資訊物件AttachedInfo,它裡面分別有Info01、Info02.....Info10一共十個附加資訊欄位,現在引數傳過來是一個string[]陣列,要怎麼才能將這個陣列中的元素分別對應到這個物件中的各個欄位呢,通過反射就可以實現,即使後期Attache

php 修改資料庫表的

php 前端傳遞引數,遍歷資料庫表的欄位後根據條件進行修改。 <?php header("Content-Type:text/html;charset=utf8"); head

Oracle資料庫中clob轉成MD5碼,並能在where條件或者group中使用

轉載自:https://blog.csdn.net/siyouzi/article/details/29589613   1.建立java source ------------Java source------------------------ create or repl

oracle資料庫中,型別不一致,導致查詢慢

最近一個WEBSERVICE突然變慢了,後查詢發現,後臺查詢也非常慢(記錄條數800多萬),索引也有,如下語句 SELECT P.ID,P.RECORD_ID,P.KEY_NAME,P.KEY_CONTENT                      FROM MED_E

Oracle 資料庫 根據時間求出該時間所在的月、季、周

在資料庫中,沒有維護類似萬年曆的表的時候,我們表中只有存著yyyy-mm-dd的日期資料,但是我們需要得出該日期所在的年月季周等資訊,此時便可用到以下SQL:select to_char(TO_DATE('20110101', 'YYYYMMDD'), 'yyyyiw')

資料庫中的NULL和''

每次操作資料庫,都會遇到NULL和''的攔路虎,由於篩選條件模糊導致查詢結果錯誤。 String str1 = null; str引用為空 String str2 = ""; str引用一個空串nul

sql server 統計資料庫中某個,剔除重複資料和查詢重複的資料

1.有的時候,在資料庫中存在一些重複的資料,但是我們又想統計某個欄位的值,重複的要剔除掉,如圖所示: 在上面的圖我們可以看到,id=2,3 id=4,5的4條資料都重複了,我們統計amount只要其

oracle 資料庫中某個逗號分隔,得到對應列中的個數(列轉行)實現方法

由於各種原因,資料的原則問題,導致某個欄位上出現多個數據(依據分隔符隔開),比如 name 欄位為 張三;李四;王五等等 需求:求一張表中name欄位中出現的個數; 想要得到的結果為: 對

批量修改oracle資料庫中sdo_geometry的SRID

1,在user_sdo_geom_metadata表中插入或者修改需要修改表的名稱,表中的geometry欄位名稱和srid。具體可參考該表的欄位。 INSERT INTO USER_SDO_GEOM_METADATA (table_name,column_name,Dim

Mybatis框架實體類資料庫表字段不一致導致查詢該一直null

實體類如下所示: public class BasicInfo { private Integer basic_id; private String name; private

mysql 查詢出某個的語句

1.不為空 select * from table where id <> ""; select * from table where id != ""; 2.為空 selec

Oracle 如何合併某

一.   前言 今天寫小專案遇到一點問題,是關於想合併某個欄位的問題。通過百度和結合自己的情況,解決了。在這裡寫下來,免得以後忘記還能看看。 二.正文 資料庫表: --留言資訊物件表 create

Oracle資料庫建某全文全文檢索

一、建表 create table myindextest (tid varchar2(50) primary key, btext BLOB) 二、建索引及引數 1、中文分詞及分詞屬性設定 begin ctx_ddl.create_preference('cnlex','

字串,然後儲存時報錯:不能null

問題復現: 比如上圖這張表,我這樣賦值 val busiOppty= BusinessOpportunity() busiOppty.opptyName = "" busiOppty.cstmName = "" busiOpptyRepo.save(

mysql查詢、不的方法總結

1、不為空 Select   *   From   table Where id<>'' Select   *   From   table Where id!='' 2、為空 Select   *   From   table Where id='' Sele

資料庫讀取時間後面多了一個".0"問題的解決辦法

今天寫自己的部落格網站遇到一個問題:就是從資料庫讀取的時間顯示在網頁上是下面這種,多了一個”.0” 但是我分明已經寫了時間格式: //獲取評論時間 public String commenttime() { SimpleDa

Swift4.0判斷nil null

當我們從介面中請求到資料時, 如果服務端沒有考慮到某個欄位為空的情況下, 此時就會將該欄位的空值返回過來, 或者恰好我們之前用到了這個欄位, 由於後期的迭代不需要這個欄位了, 那麼此時的程式碼

SQL語言做加減運算時某項的null轉換0

        在SQL語言中,很多時候,在表項中會遇到null值,null值有三大特點:1)NULL值不參加統計;2)NULL值不進入計算表示式;3)不能與其它值進行比較。 因此,在運算中要將null值有時候轉換成其他值,這裡提供一種加減運算中轉換為0的方法。      

使用mysql sum統計函式 結果null時返回0

//查詢定時任務是否存在 public Integer getPetTime(HomePetTime homePetTime){ Integer result = 0; ConnectionDB util = new ConnectionDB(); Objec