开发者社区> 问答> 正文

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

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应该怎么写

展开
收起
爱吃鱼的程序员 2020-06-09 10:39:42 544 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

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

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

    参考自:MySQL行转列、列转行常用函数用法介绍 http://www.data.5helpyou.com/article388.html
    2020-06-09 10:39:57
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像