如何使用 Null 进行求和

发布于 2024-11-03 19:15:11 字数 440 浏览 1 评论 0原文

我正在执行 tot := tot + v_row.SAVINGS; ,其中 tot 初始化为 0,v_row.SAVINGS 初始化为 null

现在,我使用 nvl function 来获取 0 值,而不是 v_row.Savingsnull,因为我需要 如果为 Null,则求和为 0,但是当我返回 v_row 时,如果求和值显示为 0,那么我需要有 null空格< /code> 返回值,我该怎么做。

注意:我将其用于报告目的,因此如果总和值为零,那么我应该在报告中显示空或空白。

I am doing tot := tot + v_row.SAVINGS; where tot is initialized to 0 and v_row.SAVINGS is initialized to null.

Now I using nvl function to get value 0 instead of null for v_row.Savings as I need 0 in summation if there is Null but when I return v_row, if summation value shows as 0 then I need to have null or blank space value in return, how can I do it.

Note: I am using this for reporting purpose and so if value of summation is zero then I should show null or blank space in report.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

那些过往 2024-11-10 19:15:11

NULLIF(expr1, expr2) 在逻辑上是等价的到

CASE WHEN expr1 = expr 2 THEN NULL ELSE expr1 END

NVL(expr1, expr2)

tot 可能为 NULL,v_row.SAVINGS 可能为 NULL。

  • 使用 NVL 确保返回数字进行加法
  • 如果总和为 NULL,则使用 NULLIF 返回 NULL

在返回之前将 tot 强制为 NULL 可能更合适。

例子:

tot := NULLIF(NVL(tot, 0) + NVL(v_row.SAVINGS, 0), 0)

NULLIF(expr1, expr2) is logically equivalent to

CASE WHEN expr1 = expr 2 THEN NULL ELSE expr1 END

NVL(expr1, expr2)

tot may be NULL and v_row.SAVINGS may be NULL.

  • Use NVL to ensure a number is returned for the addition
  • Use NULLIF to return NULL if the sum is NULL

It may be more appropriate to coerce the tot to NULL just before you return.

Example:

tot := NULLIF(NVL(tot, 0) + NVL(v_row.SAVINGS, 0), 0)
终难遇 2024-11-10 19:15:11

这应该有效:

tot := case when tot + v_row.SAVINGS = 0 then null else tot + v_row.SAVINGS end;

This should work:

tot := case when tot + v_row.SAVINGS = 0 then null else tot + v_row.SAVINGS end;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文