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

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

2回答

冯万里冯万里  数据库架构师 , IBM
icejiangshaohebingbingsxDB2l等赞同了此回答
case when应该就是最好的了 显示全部

case when应该就是最好的了

收起
 4天前
浏览27
DB2l 邀答
DB2lDB2l  软件开发工程师 , 互联网
select col1,col2 from A 数据结果如下: select col1||'|^|'||col2 from A 拼接列之后的结果: select case when col1 is null then '' else col1 end||'|^|'||col2 from A 然后我把可能为空的列进行case when处理结果: 这样问题是解决了,如果有20多列的表,有10列...显示全部
select col1,col2 from A

数据结果如下:
3.jpg

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

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

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

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

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

收起
 4天前
浏览25

提问者

DB2l软件开发工程师, 互联网

问题状态

  • 发布时间:2018-04-13
  • 关注会员:2 人
  • 问题浏览:74
  • 最近回答:4天前
  • 关于TWT  使用指南  社区专家合作  厂商入驻社区  企业招聘  投诉建议  版权与免责声明  联系我们
    © 2017 talkwithtrend — talk with trend,talk with technologist 京ICP备09031017号-30