Db2 NULLIF如何在此查询中正确设置它

Db2 NULLIF如何在此查询中正确设置它,db2,tablespace,nullif,Db2,Tablespace,Nullif,我使用以下查询来获得一些表空间的使用情况: db2 "select substr(tbsp_name,1,30) as Tablespace_Name, tbsp_type as Type, substr(tbsp_state,1,20) as Status, (tbsp_total_size_kb / 1024 ) as Size_Meg, smallint((float(tbsp_free_size_kb)/ float(tbsp_total_size_kb))*100) as Percen

我使用以下查询来获得一些表空间的使用情况:

db2 "select substr(tbsp_name,1,30) as Tablespace_Name, tbsp_type as Type, substr(tbsp_state,1,20) as Status, (tbsp_total_size_kb / 1024 ) as Size_Meg, smallint((float(tbsp_free_size_kb)/ float(tbsp_total_size_kb))*100) as Percent_Free_Space, int((tbsp_free_size_kb) / 1024 )as Meg_Free_Space from sysibmadm.tbsp_utilization where smallint((float(tbsp_free_size_kb)/ float(tbsp_total_size_kb))*100) < 20 order by Percent_Free_Space"
db2“选择substr(tbsp_name,1,30)作为表空间_name,tbsp_type作为type,substr(tbsp_state,1,20)作为Status,(tbsp_total_size_kb/1024)作为size_Meg,smallint((float(tbsp_free_size_kb)/float(tbsp_total_size_size_kb))*100)作为free_Space的百分比,int((tbsp_free_size_size_size_-kb)/1024;)作为来自sysmadm.tbm的Meg空闲_空间,其中smallint的利用率为smallu((浮点(tbsp_空闲_大小_kb)/浮点(tbsp_总大小_kb))*100)<20个订单(按空闲空间百分比计算)
但是,我遇到了以下错误:

尝试将SQL0801N除以零。SQLSTATE=22012

我知道您可以使用
NULLIF
来修复此错误,但是我找不到在查询中设置的正确方法,谢谢您的帮助

(使用“DB2V9.7.0.11”、“s150922”、“IP23937”和FixPack)
“11”)

也许您应该使用以下用例:

CASE WHEN tbsp_total_size_kb=0 THEN NULL ELSE (tbsp_total_size_kb / 1024 ) END as Size_Meg
如果
tbsp\u total\u size\u kb
为空,则如下所示:

CASE WHEN IFNULL(tbsp_total_size_kb,0)=0 THEN NULL ELSE (tbsp_total_size_kb / 1024 ) END as Size_Meg
试试这个:

smallint(浮点(tbsp_自由大小大小大小大小大小大小大小大小大小大小大小大小大小大小大小大小大小大小大小大小), 0))*100)


谢谢你的评论,兄弟,修改后的完整查询结果如何?再次感谢