我有一张桌子PROCESS。当前它没有任何记录。如果表没有任何记录,我需要返回一个硬编码的行。当主键列“ id”为空时,我正在执行选择,然后我对值进行硬编码并如下所示返回
SELECT CASE WHEN p.ID IS NULL THEN 1 ELSE p.ID END ,
CASE WHEN p.COMPANY IS NULL THEN 'COMP1' ELSE p.COMPANY END
FROM PROCESS p
我从下面的链接DB2 / 400中的If-else语句中获取了参考
但是它总是向我返回DB2数据库中的空行,而不是select语句中使用的硬编码值。08:50:27成功选择0.307 0.301 0获取空结果集08:50:29完成0.307 0.301 0成功:1失败:0
请帮我
因为主键永远不能为null,所以无法以这种方式进行操作。并从空表中选择*不返回任何行(0行),则不返回null。
您可以这样做:
select ID, COMPANY from PROCESS
UNION ALL
select 1 as ID, 'COMP1' as COMPANY from sysibm.sysdummy1 where (select count(*) from PROCESS) = 0;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句