记录格式请教

Ants2002 2011-03-21 09:32:29
我有一个表a
如下表
itemid typeid typename
1 1 aaa
1 2 bbb
2 3 ccc
2 5 ddd
3 5 ddd

表b如下表
itemid itemname
1 kkkk
2 llll
3 oooo

a表同b表通过itemid 关联,取出下表记录格式
itemid itemname typename
1 kkkk aaa,bbb
2 llll ccc,ddd
3 oooo ddd

请高手指教如何才能得到这个结果格式的SQL语句,多谢!
...全文
72 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
psufnxk2008 2011-03-24
  • 打赏
  • 举报
回复
学习wn_concat..
picasso124256 2011-03-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 bobo12082119 的回复:]
SQL code

SQL> select * from a;
/*
ITEMID TYPEID TYPENAME
--------------------------------------- -------------------------------……
[/Quote]+1
  • 打赏
  • 举报
回复
[Quote=引用楼主 ants2002 的回复:]
我有一个表a
如下表
itemid typeid typename
1 1 aaa
1 2 bbb
2 3 ccc
2 5 ddd
3 5 ddd

表b如下表
itemid itemname
1 kkkk
2 llll
3 oooo

a表同b表通过itemid 关联,取出下表记录格式
itemid itemname typename
1 kkkk aaa,bb……
[/Quote]
如果是10g或者以上版本的话可以用wm_concat()
select itemid,itemname,wm_concat(typename) typename
from a,b
where a.itemid=b.itemid
group by itemid,itemname
luoyoumou 2011-03-21
  • 打赏
  • 举报
回复
-- 用列转行函数wmsys.wm_concat
304的的哥 2011-03-21
  • 打赏
  • 举报
回复

SQL> select * from a;
/*
ITEMID TYPEID TYPENAME
--------------------------------------- --------------------------------------- ----------
1 2 bbb
2 3 ccc
2 5 ddd
3 5 ddd
1 1 aaa
*/
SQL> select * from b;
/*
ITEMID ITEMNAME
--------------------------------------- ----------
1 kkk
2 lll
3 ooo
*/
SQL> select a.itemid,b.itemname,wmsys.wm_concat(a.typename)
2 from a,b
3 where a.itemid=b.itemid
4 group by a.itemid,b.itemname;
/*
ITEMID ITEMNAME WMSYS.WM_CONCAT(A.TYPENAME)
--------------------------------------- ---------- --------------------------------------------------------------------------------
1 kkk bbb,aaa
2 lll ccc,ddd
3 ooo ddd
*/

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧