Oracle中計(jì)算除法,解決除數(shù)為零報(bào)錯(cuò)的問(wèn)題及分析
在Oracle數(shù)據(jù)庫(kù)中,需要使用到除法,但是除數(shù)有可能為零,如果直接使用sql中的除法運(yùn)算符(/),則會(huì)報(bào)錯(cuò)
解決方法
計(jì)算除法的語(yǔ)法和示例
--Oracle中計(jì)算除法語(yǔ)法 SELECT case WHEN(NVL(除數(shù), 0))!=0 THEN round(被除數(shù) / 除數(shù),需要保留的小數(shù)位數(shù)) ELSE 0 END result FROM DUAL
例子:
SELECT
t4.NAME,
t4."總成本",
t4."營(yíng)業(yè)額",
t4."利潤(rùn)",
CASE WHEN(NVL( t4."總成本", 0)) !=0
THEN
ROUND(t4."利潤(rùn)" / t4."總成本" , 2)
ELSE
0
END
"利潤(rùn)率"
FROM
(
WITH linshi AS (
SELECT
t2.NAME,
(t2.PUR_PRICE * t1.SALE_NUM) + t1.HUMAN_COST + t1.TRAN_COST + t1.OTH_COST AS "總成本",
t2.PRICE * t1.SALE_NUM AS "營(yíng)業(yè)額"
FROM
BRAIN_BAK.TEST_DW_ITEMS_DETA t1
INNER JOIN BRAIN_BAK.TEST_DW_ITEMS_PRICE t2 ON t1.NAME = t2.NAME
) --一張臨時(shí)表
SELECT
t3.NAME,
t3."總成本",
t3."營(yíng)業(yè)額",
t3."營(yíng)業(yè)額" - t3."總成本" AS "利潤(rùn)"
FROM linshi t3
) t4 ;使用 decode ()函數(shù)
decode(A.REFORM_TASK_TOTAL,0,0 , round((A.REFORM_TASK_NUM / A.REFORM_TASK_TOTAL) * 100,2 )) AS 年度改革任務(wù)整改完成率,
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決Oracle?11g?導(dǎo)出數(shù)據(jù)報(bào)?“ORA-01455:?轉(zhuǎn)換列溢出整數(shù)數(shù)據(jù)類(lèi)型”的問(wèn)題
這篇文章主要介紹了Oracle?11g?導(dǎo)出數(shù)據(jù)報(bào)?“ORA-01455:?轉(zhuǎn)換列溢出整數(shù)數(shù)據(jù)類(lèi)型”的問(wèn)題,文中給大家介紹了ORACLE?11g?導(dǎo)出數(shù)據(jù)的操作步驟,需要的朋友可以參考下2021-12-12
Oracle數(shù)據(jù)庫(kù)時(shí)間格式轉(zhuǎn)換的常見(jiàn)示例
這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)時(shí)間格式轉(zhuǎn)換的常見(jiàn)示例,在實(shí)際的工作中會(huì)經(jīng)常會(huì)用到to_char()、to_date()函數(shù)來(lái)對(duì)時(shí)間、日期進(jìn)行處理,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下2024-02-02
oracle數(shù)據(jù)庫(kù)ORA-28000錯(cuò)誤的原因及解決方案
Oracle 11g用戶(hù)被鎖錯(cuò)誤(ORA-28000)因連續(xù)錯(cuò)誤登錄次數(shù)超限,可通過(guò)修改概要文件限制或Navicat解鎖解決2025-07-07
實(shí)現(xiàn)oracle數(shù)據(jù)庫(kù)字段自增長(zhǎng)(兩種方式)
這篇文章主要通過(guò)兩種方式實(shí)現(xiàn)oracle數(shù)據(jù)庫(kù)字段自增長(zhǎng),第一種方式是序列+觸發(fā)器,第二種方式序列+顯示調(diào)用序列,需要的朋友可以參考下2015-07-07
Oracle 細(xì)粒度審計(jì)(FGA)初步認(rèn)識(shí)
細(xì)粒度審計(jì)(FGA),是在Oracle 9i中引入的,能夠記錄SCN號(hào)和行級(jí)的更改以重建舊的數(shù)據(jù),本文將詳細(xì)介紹,需要的朋友可以參考下2012-12-12
Oracle數(shù)據(jù)庫(kù)執(zhí)行慢問(wèn)題排查詳細(xì)過(guò)程
這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)執(zhí)行慢問(wèn)題排查的詳細(xì)過(guò)程,在企業(yè)級(jí)應(yīng)用中,數(shù)據(jù)庫(kù)的穩(wěn)定性和性能是至關(guān)重要的,文中給出了詳細(xì)的代碼實(shí)例,需要的朋友可以參考下2023-07-07
Oracle遞歸樹(shù)形結(jié)構(gòu)查詢(xún)功能
oracle樹(shù)狀結(jié)構(gòu)查詢(xún)即層次遞歸查詢(xún),是sql語(yǔ)句經(jīng)常用到的,在實(shí)際開(kāi)發(fā)中組織結(jié)構(gòu)實(shí)現(xiàn)及其層次化實(shí)現(xiàn)功能也是經(jīng)常遇到的。這篇文章給大家介紹了Oracle遞歸樹(shù)形結(jié)構(gòu)查詢(xún)功能,需要的朋友參考下2019-09-09

