select xm,zgm from zjk得到
张三  A
李四  B
王五  AB
赵六  C另有zgb
A 注册造价工程师
B 注册监理工程师
C 注册城市规划师现在期望得到张三  注册造价工程师
李四  注册监理工程师
王五  注册造价工程师/注册监理工程师
赵六  注册城市规划师请问在sql里面可以如何写,关键在于处理那个ab  不知道怎么写。要都是单个的我会写!

解决方案 »

  1.   

    表zgb
    zgm  name
    A    注册造价工程师
    B    注册监理工程师
    C    注册城市规划师
    --------------------------------select zjk.xm,zgb.name
    from zjk left join zgb  on zjk.zgm = zgb.zgm
      

  2.   

    http://blog.itpub.net/post/468/3380看看这个是否能给您点提示.
      

  3.   

    select a.xm,b.name from zjk a ,zgb b where a.zgm=b.zgm
      

  4.   

    select xm,
           B.name || (case
             when C.name is not null then
              '/' || C.name
           end)
      from zjk A
      left join zgb B on substr(A.zgm, 1, 1) = B.zgm
      left join zgb C on substr(A.zgm, 2, 1) = C.zgm这个想法比较笨,但愿能解你燃眉之急,这道题我已经想了很久,期待更好的办法.写函数肯定能实现,但那样就太复杂,有点兴师动众
      

  5.   

    哇.没想到这个问题还这么复杂啊.我以为轻松一句就可以解决呢.因为在另一个操作系统下海没有办法测试. 不过楼上这个能针对更多的情况吗?.事实上 zgb里面  不止  ABC三项呢。二是有很多种资格呢。  
    关于写函数,我不太懂呢(初学者,没有写过)。可以告诉我该怎么写吗?
      

  6.   

    楼上tennisboy0317()  的恢复对我还是有帮助的!!谢谢。学习中……
      

  7.   

    你保存数据的时候有问题,你应该把AB,存成A,B把他们之间用什么东西分开,然后查询的时候用你的分隔符拆开查.