数据库:Oracle 表数据如下:
 gx1  gx2  gx3  gx4
------------------------
 a1   a2   null null
 b1   null null null
 c1   c2   c3   null
 d1   null null null
 .
 .
 .
  
求结果
 gx
-------
 a1/a2
 b1
 c1/c2/c3
 d1
问题:将四个字段的值合并为一个字段,并用'/'隔开,如果直接用gx1||'/'gx2||'/'||gx3||'/'||gx4会出现这样的结果
gx
--------
a1/a2//
b1///
c1/c2/c3/
d1///
但是我要的结果是: gx
-------
 a1/a2
 b1
 c1/c2/c3
 d1
先谢大家了,顶有分!速度结贴!

解决方案 »

  1.   

    select decode(gx1,null,null,gx1||'/')||decode(gx2,null,null,gx2||'/')||decode(gx3,null,null,gx3||'/')||gx4  gx
    from a
      

  2.   

    select t.gx1 
    || decode(t.gx1, null, '', '/' || t.gx1)
    || decode(t.gx2, null, '', '/' || t.gx2) 
    || decode(t.gx3, null, '', '/' || t.gx3) 
    || decode(t.gx4, null, '', '/' || t.gx4) 
    from table t
      

  3.   

    错了:
    select 
        decode(t.gx1, null, '',t.gx1 || '/')
    ||  decode(t.gx2, null, '',t.gx2 || '/') 
    ||  decode(t.gx3, null, '',t.gx3 || '/') 
    ||  t.gx4
    from table t
      

  4.   

    select  
        decode(t.gx1, null, '',t.gx1)|| '/'
    ||  decode(t.gx2, null, '',t.gx2)|| '/'
    ||  decode(t.gx3, null, '',t.gx3)|| '/'
    || t.gx4 
    from table t其实直接下面这样应该就可以了
    select  t.gx1 || '/' || t.gx2 || '/' || t.gx3 || '/' || t.gx4 from table t