簡體   English   中英

如何在DB2 SQL中划分兩列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM