sql server转mysql,有一个语句不会求sql大神

奶丶空瓶 发布于 2016/09/10 13:52
阅读 425
收藏 0
SELECT rp.moduleid,convert(varchar,( SELECT ','+p2.popedomCode FROM Manage_user mu2 LEFT JOIN DRolePopedom rp2 ON mu2.usertype = rp2.RoleId LEFT JOIN DPopedom p2 ON rp2.PopedomId = p2.popedomId
WHERE
rp.moduleid=rp2.moduleid and rp.RoleId=rp2.RoleId and mu2.userid=mu.userid for xml path('')
 )) popedomCode
 FROM
Manage_user mu
LEFT JOIN DRolePopedom rp ON mu.usertype = rp.RoleId
LEFT JOIN DPopedom p ON rp.PopedomId = p.popedomId
WHERE
mu.userid = ?

 GROUP BY  rp.moduleid,rp.RoleId,mu.userid

这事sqlserver的语句 现在知道conver  mysql没有varchar  我该为char   放在后面 但还是报错。求mysql应该怎么写

加载中
0
北极心
北极心

concat/cast将Int转为varchar经常用concat

奶丶空瓶
奶丶空瓶
@北极心 依然报错 我才来这里提问的
北极心
北极心
回复 @奶丶空瓶 : 那就group_concat
奶丶空瓶
奶丶空瓶
其实我感觉是for xml path的问题
0
o
oneflower
该sql语句表现出来的问题如下:
一 mu2.userid=mu.userid for xml path('') 字段后面有空格;
二  SELECT ','+p2.popedomCode 应该改为 select concat(',',p2.popedomCode);
三 这个sql语句中没有看到别名为rp的表;
mysql是有varchar类型的;
mysql连接操作或者行转列、列转行常用函数是concat、concat_ws、group_concat

参考自:MySQL行转列、列转行常用函数用法介绍 http://www.data.5helpyou.com/article388.html
返回顶部
顶部