[英]How to Divide two columns in DB2 SQL
我將磁盤容量存儲在2列中,分別為CAPACITY_TOTAL和CAPACITY_USED。 我需要提供將利用率百分比划分為CAPACITY_USED / CAPACITY_TOTAL * 100的利用率百分比。我正在使用以下查詢:
select CAPACITY_USED / CAPACITY_TOTAL from TableName
給出以下錯誤:
DB2 SQL Error: SQLCODE=-801, SQLSTATE=22012, SQLERRMC=null, DRIVER=4.15.82
我已經將列轉換為十進制,但即使這樣也無法正常工作。
錯誤代碼801表示您的查詢試圖除以零。
select CAPACITY_USED / CAPACITY_TOTAL from TableName
where CAPACITY_TOTAL IS NOT NULL and CAPACITY_TOTAL <> 0
好的,所以SQLSTATE=22012
意味着您正在嘗試除以零 。 顯然,您的某些行的CAPACITY_TOTAL
列中包含空值或零,並且db無法計算公式。
嘗試以下查詢可獲得更好的結果:
SELECT CASE CAPACITY_TOTAL
WHEN 0 THEN 0
WHEN NULL THEN 0
ELSE CAPACITY_USED / CAPACITY_TOTAL
END AS UTILIZATION
FROM MY_TABLE
您可能需要為零/空值添加其他有意義的返回值。
或者,跳過行,其中CAPACITY_TOTAL
為null或零:
SELECT CAPACITY_USED / CAPACITY_TOTAL AS UTILIZATION
FROM MY_TABLE
WHERE CAPACITY_TOTAL IS NOT NULL
AND CAPACITY_TOTAL > 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.