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

发布于 2021-11-27 21:30:46 字数 676 浏览 998 评论 4

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

狠疯拽 2021-12-03 23:29:29

该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

琴流音 2021-12-03 23:20:59

其实我感觉是for xml path的问题

奈何桥上唱咆哮 2021-12-03 22:21:11

回复
那就group_concat

琴流音 2021-12-03 20:48:59

@北极心 依然报错 我才来这里提问的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文