我正在使用Sybase ASE数据库.
我有两个表看起来像:
我有两个表看起来像:
餐馆:
--------------------- | ShopName | ShopID | --------------------- | Sweetie | 1 | | Candie | 2 | | Sugarie | 3 | ---------------------
餐桌糖果:
---------------------- | SweetName | ShopID | ---------------------- | lolly | 1 | | redlolly | 1 | | greenloly | 1 | | taffy | 2 | | redtaffy | 2 | | bluetaffy | 2 | | choco | 3 | | mintchoco | 3 | | milkchoco | 3 | | gummybees | 3 | ----------------------
----------------------------------------------------- | ShopName | Sweets | ----------------------------------------------------- | Sweetie | lolly,redlolly,greenlolly | | Candie | taffy,redtaffy,bluetaffy | | Sugarie | choco,mintchoco,milkchoco,gummybees | -----------------------------------------------------
我应该怎么做呢?我需要这个用于Sybase ASE数据库.我尝试了LIST()函数,但是我收到了一个错误.我检查了它的文档,结果证明,ASE版本中没有此功能.
这可能意味着会涉及一些“动态sql”(我很少知道这意味着什么).有人可以帮忙吗?
我可以在结果表中找到ShopId而不是ShopName ……我还不确定.我想这不会有太大区别.此外,结果的Sweets列中的尾随逗号不是问题.我想要的只是一个非空白分隔符.
解决方法
您必须指定您正在使用的DBMS.
MysqL的GROUP CONCAT正是您所需要的.
SELECT ShopName,GROUP_CONCAT(SweetName SEParaTOR ",") FROM Shops a JOIN Sweets b ON a.ShopID = b.ShopID GROUP BY ShopName
原文地址:https://www.jb51.cc/mssql/74974.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。