db2 - 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 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"
但是,我遇到了以下错误:
SQL0801N 已尝试除以零。SQLSTATE=22012
我了解您可以使用 a 修复此错误,NULLIF
但是我找不到在查询中设置的正确方法,感谢您的帮助。
(使用“DB2 v9.7.0.11”、“s150922”、“IP23937”和 Fix Pack “11”)
解决方案
也许您应该使用案例:
CASE WHEN tbsp_total_size_kb=0 THEN NULL ELSE (tbsp_total_size_kb / 1024 ) END as Size_Meg
iftbsp_total_size_kb
可以为 null IFNULL,如下所示:
CASE WHEN IFNULL(tbsp_total_size_kb,0)=0 THEN NULL ELSE (tbsp_total_size_kb / 1024 ) END as Size_Meg
推荐阅读
- sql-server - SQL Server 查询中的当前文件夹、桌面文件夹目录
- math - 如何在给定向量的垂直平面中找到 3D 点坐标
- firebase - Firebase 动态链接:增加自定义域限制
- android - MediaSession onMediaButtonEvent 工作几秒钟然后退出 - Android
- c++ - 将原始指针的所有权转移到 unique_ptr
- python - 二维输入的 Keras 模型
- dart - 颤振打开/关闭wifi
- .net - 编写 C#/ASP.NET 应用程序以通过 OneLogin 提供 SSO - 出现错误
- sql - SQL查询 - 将每日数据转换为月平均值,累积总和直到月底?
- java - javax.net.ssl.SSLHandshakeException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException: