假設要將"CARD_MONEY"欄位內做計算後更新,SQL語法如下:
update TABLE_NAME set CARD_MONEY = (CARD_MONEY-1000) where CARD_MONEY is not NULL and length(trim(translate(CARD_MONEY, '+-.0123456789', ' '))) is NULL
注意事項:
此語法的運作原理是使用Oracle內建translate函數,將欄位內的資料是0123456789等數字取代成空白,欄位資料全部取代後,再用trim及length函數去除空白後計算資料長度,若欄位呈現NULL,表示資料內沒有包含數字以外的字串,因此判斷該筆資料是數字。