select a.keyword,a.keyalias,a.key_doc
,a.keyword+(CASE WHEN a.keyalias IS  NULL THEN  '' else '\\'+a.keyalias  END)+(CASE WHEN a.key_doc IS  NULL THEN '' else  ':'+a.key_doc  END) from  myTableName  a

解决方案 »

  1.   

    select a.keyword,a.keyalias,a.key_doc
    ,a.keyword||(CASE WHEN a.keyalias IS  NULL THEN  '' else '\\'||a.keyalias  END)||(CASE WHEN a.key_doc IS  NULL THEN '' else  ':'||a.key_doc  END) from  myTableName  a
      

  2.   


    不行的。将“+”都改成“||”后,执行到'\\'||a.keyalias  END 的a前面时,提示:
    ORA-12704:字符集不匹配
      

  3.   

    select a.keyword,
           a.keyalias,
           a.key_doc,
           a.keyword || decode(a.keyalias, NULL, '', '\\' || a.keyalias) ||decode(a.key_doc, NULL, '', ':' || a.key_doc)
      from myTableName a
      

  4.   

    SQL> select c1,c2,c3,c1||(case when c2 is null then '' else '\\'||c2 end)||(case when c3 is null then '' else ':'||c3 end) c4 from t;C1     C2     C3     C4
    ------ ------ ------ ------
    1      a      A      1\\a:A
    2      b             2\\b
    3             C      3:C
    4                    4
      

  5.   

    select a.keyword,
             a.keyalias,
             a.key_doc,
             decode(a.keyalias, null, '', '\\' || a.keyalias) ||
             decode(a.key_doc, null, '', ':' || a.key_doc)
        from myTableName a;