sql合并列转行,在线等

有表

wareid makeno qty busno
10001 11111 5 111
10001 11111 10 222
10002 22222 11 111
10002 33311 20 222

得到
wareid makeno qty busno
10001 11111 5@10@ 111@222@
10002 22222 11@0@ 111@0@
10002 33311 0@20@ 0@222@

可以这么写

 select wareid ,
GROUP_CONCAT(makeno  SEPARATOR '@') AS makeno ,
GROUP_CONCAT(qty   SEPARATOR '@') AS qty  ,
GROUP_CONCAT(busno  SEPARATOR '@') AS busno ,
from TableName 
group by wareid ;

和要求的样式唯一区别是拼接后的字段内容最后没有@,如果需要字段最后有@可以自行拼接上:)
希望对你有帮助。