gpt4 book ai didi

SQL DB2 Union 跳过 NULL/0 行

转载 作者:行者123 更新时间:2023-12-01 23:07:01 26 4
gpt4 key购买 nike

是否有一种简单的方法可以跳过联合中的 NULL 行?我在 DB2 上。

例子:

SELECT 'FIRST', sum(value) FROM  SYSIBM.SYSDUMMY1
UNION
SELECT 'SECOND', sum(value) FROM SYSIBM.SYSDUMMY1
UNION
SELECT 'THIRD', sum(value) FROM SYSIBM.SYSDUMMY1

结果:

1---------|2-----
FIRST 1
SECOND NULL/0
THIRD 3

因此,如果其中一个联合有 0 或 NULL,则应跳过它:

估计示例结果:

1---------|2-----
FIRST 1
THIRD 3

最佳答案

使用子查询。我还建议 union all:

SELECT col, val
FROM (SELECT 'FIRST' as col, sum(value) as val FROM SYSIBM.SYSDUMMY1
UNION ALL
SELECT 'SECOND' as col, sum(value) as val FROM SYSIBM.SYSDUMMY1
UNION ALL
SELECT 'THIRD' as col, sum(value) as val FROM SYSIBM.SYSDUMMY1
) t
WHERE val IS NOT NULL AND val > 0;

注意事项:

  • UNION 会产生删除重复项的开销。使用 UNION ALL 来避免这种开销。
  • 比较 val IS NOT NULL 是多余的。但是它明确表达了你想要的条件。

关于SQL DB2 Union 跳过 NULL/0 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46156001/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com