软件开发Db2

db2进行多列拼接为一行输出时,如果有一列值为null则整条查询结果为null?

客户要求数据导出格式为|^|,想采用db2中的export导出数据方式,其中coldel分隔符无法用|^|作为分隔符,只能在查询数据库时进行字段拼接,拼接格式为:col1||'|^|'||col2||'|^|'||col3.....,如果其中一列的值为null则拼接的整条记录也都会为null,问这种列拼接中有一个列为null则...显示全部

客户要求数据导出格式为|^|,想采用db2中的export导出数据方式,其中coldel分隔符无法用|^|作为分隔符,只能在查询数据库时进行字段拼接,拼接格式为:col1||'|^|'||col2||'|^|'||col3.....,如果其中一列的值为null则拼接的整条记录也都会为null,问这种列拼接中有一个列为null则拼接结果都为null怎么解决?望举例说明。

收起
参与11

查看其它 2 个回答DB2l的回答

DB2lDB2l软件开发工程师互联网
select col1,col2 from A

数据结果如下:
3.jpg

3.jpg

select col1||'|^|'||col2 from A

拼接列之后的结果:
2.jpg

2.jpg

select case when col1 is null then '' else col1 end||'|^|'||col2 from A

然后我把可能为空的列进行case when处理结果:
1.jpg

1.jpg

这样问题是解决了,如果有20多列的表,有10列的值可能包含为空,则要case when 处理10个字段。有没有更好的解决办法呢?

软件开发 · 2018-04-16
浏览3633

回答者

DB2l
软件开发工程师互联网
擅长领域: 数据库关系型数据库存储

回答状态

  • 发布时间:2018-04-16
  • 关注会员:3 人
  • 回答浏览:3633
  • X社区推广