锁定老帖子 主题:各位坛子里的兄弟来看看这个面试题。
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2011-09-25
最后修改:2011-09-26
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-09-25
帖子别沉了。没有人知道吗?
|
|
返回顶楼 | |
发表时间:2011-09-25
真的很简单,你是刚毕业的?
|
|
返回顶楼 | |
发表时间:2011-09-25
harry_bote 写道 真的很简单,你是刚毕业的?
那说说你的实现方式,我知道mysql有一个group_contact函数可以实现,请问oracle怎么实现的呢? 这个和刚毕业有什么关系吗?大牛? |
|
返回顶楼 | |
发表时间:2011-09-25
select userId,wmsys.WM_CONCAT(role_name) from youtable;
|
|
返回顶楼 | |
发表时间:2011-09-25
把id相同的数据都取出来想怎么显示就怎么显示
|
|
返回顶楼 | |
发表时间:2011-09-25
最后修改:2011-09-25
|
|
返回顶楼 | |
发表时间:2011-09-25
用程序估计是再简单不过了,数据库的话如下:
mysql:直接调用函数group_contact完成 oracle10g:直接掉函数wm_concat完成 oracle9i:麻烦点,不过主要是通过sys_connect_by_path,这个函数能树枝进行按指定字符连接,之所以产生树是因为这里面用到了oracle的START WITH 递归成树的 参考:http://jqsl2012.iteye.com/admin/blogs/1105523 |
|
返回顶楼 | |
发表时间:2011-09-25
WITH T AS (SELECT USERID, SYS_CONNECT_BY_PATH(ROLE_NAME, ',') ROLE_NAME, LEVEL LE FROM MS_ACCESS WHERE CONNECT_BY_ISLEAF = 1 CONNECT BY PRIOR USERID = USERID AND PRIOR ROLE_ID = ROLE_ID - 1 ORDER BY USERID, LEVEL) , U AS (SELECT USERID, MAX(LE) AS LE FROM T GROUP BY USERID) SELECT T.USERID, SUBSTR(ROLE_NAME, 2, LENGTH(ROLE_NAME)) userName FROM T, U WHERE T.USERID = U.USERID AND T.LE = U.LE |
|
返回顶楼 | |
发表时间:2011-09-25
Oracle Database 10g Express Edition Release 10.2.0.1.0 版本
wm_concat无效,没法弄 |
|
返回顶楼 | |