sql – 加NULL值
发布时间:2020-12-12 16:17:25 所属栏目:MsSql教程 来源:网络整理
导读:在一个存储过程(在我的情况下是Oracle)中,我想向现有记录添加一些值.问题是现有值和要添加的值都可以为null.当两个操作数都为空时,我只希望结果为NULL.如果只有一个为null,我希望结果是另一个操作数.如果两者均为非空值,则我希望结果为“正常”. 这是我到目前
在一个存储过程(在我的情况下是Oracle)中,我想向现有记录添加一些值.问题是现有值和要添加的值都可以为null.当两个操作数都为空时,我只希望结果为NULL.如果只有一个为null,我希望结果是另一个操作数.如果两者均为非空值,则我希望结果为“正常”.
这是我到目前为止使用的 SELECT column INTO anz_old FROM aTable Where <someKeyCondition>; IF anz_old IS NULL THEN anz_new := panzahl; ELSE anz_new := anz_new + NVL (panzahl,0); END IF; UPATE aTabel set column = anz_new Where <someKeyCondition>; 有没有更优雅的方式(在SQL中完全是完全的,即只是在一个更短的语句中缺少一个长的CASE-Statement,基本上与上面的代码相同) 解决方法如果要添加a和b并且可以为null,则可以使用coalesce,它返回传递它的第一个非空参数:coalesce(a+b,a,b) 所以在这种情况下,如果两个参数都不为null,它将返回总和.如果只有b为null,它将跳过b并返回a.如果a为空,则将跳过b和a并返回b,如果它们都为空,则只能为null. 如果您希望答案为0而不是null,如果a和b都为空,则可以将0作为最后一个参数: coalesce(a+b,b,0) 考虑@erwins answer – null可能不是正确的使用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |