论坛首页 招聘求职论坛

各位坛子里的兄弟来看看这个面试题。

浏览 12254 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (1)
作者 正文
   发表时间:2011-09-25   最后修改:2011-09-26
删帖。。。。。
   发表时间:2011-09-25  
帖子别沉了。没有人知道吗?
0 请登录后投票
   发表时间:2011-09-25  
真的很简单,你是刚毕业的?
0 请登录后投票
   发表时间:2011-09-25  
harry_bote 写道
真的很简单,你是刚毕业的?


那说说你的实现方式,我知道mysql有一个group_contact函数可以实现,请问oracle怎么实现的呢?

这个和刚毕业有什么关系吗?大牛?
0 请登录后投票
   发表时间:2011-09-25  
select userId,wmsys.WM_CONCAT(role_name) from youtable;
0 请登录后投票
   发表时间:2011-09-25  
把id相同的数据都取出来想怎么显示就怎么显示
0 请登录后投票
   发表时间:2011-09-25   最后修改:2011-09-25



 ...

  • 大小: 21.3 KB
0 请登录后投票
   发表时间:2011-09-25  
用程序估计是再简单不过了,数据库的话如下:

mysql:直接调用函数group_contact完成
oracle10g:直接掉函数wm_concat完成
oracle9i:麻烦点,不过主要是通过sys_connect_by_path,这个函数能树枝进行按指定字符连接,之所以产生树是因为这里面用到了oracle的START WITH 递归成树的

参考:http://jqsl2012.iteye.com/admin/blogs/1105523
0 请登录后投票
   发表时间: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

0 请登录后投票
   发表时间:2011-09-25  
Oracle Database 10g Express Edition Release 10.2.0.1.0 版本
wm_concat无效,没法弄
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics