sql--行转列后拆分数据,组合目的数据样式

现在我有张表,字段有A,B,C,D,E;一共五个,现在A是主键,B存的数据是用逗号分隔的数据,C同B,D和E字段属于一般字段;
现在我想查询出的情况如下:
(A1--An为不同主键
b1--bn为对应主键下B字段逗号分开后的单个数据
c1--cn同b1--bn

      A1         A1      A2      A2        。。。           。。。        
      b1         c1       b1       c1        。。。           。。。
        b2         c2       b1       c1        。。。           。。。
        D           D        D        D          。。。           。。。
        E            E         E        E           。。。           。。。

我会行转列和分开有逗号的字段,但是最后怎么组合成目标数据犯愁,求思路。。。

要么自己写个函数,要么就是把数据读取出来之后在程序里实现然后再组装。好像数据库里面没有自带的这种操作吧