如何在 DB2 中划分两列 SQL
How to Divide two columns in DB2 SQL
我将磁盘容量存储在 CAPACITY_TOTAL 和 CAPACITY_USED 两列中。我需要显示我需要将 CAPACITY_USED 除以 CAPACITY_TOTAL 作为 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
您可能想为零/空输入一些其他有意义的 return 值。
或者,跳过行,其中 CAPACITY_TOTAL
为空或零:
SELECT CAPACITY_USED / CAPACITY_TOTAL AS UTILIZATION
FROM MY_TABLE
WHERE CAPACITY_TOTAL IS NOT NULL
AND CAPACITY_TOTAL > 0
我将磁盘容量存储在 CAPACITY_TOTAL 和 CAPACITY_USED 两列中。我需要显示我需要将 CAPACITY_USED 除以 CAPACITY_TOTAL 作为 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
您可能想为零/空输入一些其他有意义的 return 值。
或者,跳过行,其中 CAPACITY_TOTAL
为空或零:
SELECT CAPACITY_USED / CAPACITY_TOTAL AS UTILIZATION
FROM MY_TABLE
WHERE CAPACITY_TOTAL IS NOT NULL
AND CAPACITY_TOTAL > 0