发表时间:2011-09-25
SELECT USERID, WM_CONCAT(ROLE_NAME)OVER(PARTITION BY USERID ORDER BY role_id DESC) FROM MS_ACCESS
后面差不多了,自己慢慢调吧 |
|
发表时间:2011-09-25
凡是关于技术的帖子,大凡都有一堆人跟帖~~
当然,这是好事! |
|
发表时间:2011-09-25
543089122 写道 参考:http://jqsl2012.iteye.com/admin/blogs/1105523 访问这个网址的时候说我没权限 |
|
发表时间:2011-09-25
如果ORALCE\MYSQL本身有提供这字符串连接聚合函数的话,楼主这个问题,其实很容易解决的,即按USERID分组后,再将同组的role_name进行字符串连接就OVER。
像ORALCE中wm_concat函数还不是ORACLE所有版本都有的,而像这种字符连接函数在实际编程中,是很常用的,SELECT CATSTR(role_name) FROM USER GROUP BY USERID,而这边这个 CATSTR聚合函数是自己在数据库PL/SQL实现的,具体实现方式可参见http://hi.baidu.com/xoy2129/blog/item/c7885e66a201f125ab184cea.html 这样CATSTR就具有通用性了 |
|
发表时间:2011-09-26
先搞清楚人家是靠你算法,还是靠你对sql的熟悉程度。。
|
|
发表时间:2011-09-26
我想 group by应该能解决这个问题
|
|
发表时间:2011-09-26
DB2 , SQLSERVER 的怎么解决,有没有相应的函数
|
|
发表时间:2011-09-26
group by 可以搞定
|
|
发表时间:2011-09-26
string2020 写道 DB2 , SQLSERVER 的怎么解决,有没有相应的函数
SQL Cookbook中文版 第13章 分层查询 介绍了各种数据库的实现 实体书买不到的,但pdf网上到处都是 oracle的窗口原理 见 itpub书籍《剑破冰山—Oracle开发艺术 》 第11章 “Oracle层次查询” 第10章 趣谈oracle分析函数 |
|
发表时间:2011-09-26
刚在mysql里试了下:
mysql> user test; mysql> select userid,group_contact(role_name) from userrole group by userid; ERROR 1305 (42000): FUNCTION test.group_contact does not exist mysql> select * from userrole; +------------+--------+------------+---------+ | userRoleId | userid | role_name | role_id | +------------+--------+------------+---------+ | 1 | 1 | 管理员 | 1 | | 2 | 1 | 编辑 | 2 | | 3 | 1 | 超级管理员 | 3 | | 4 | 2 | 普通会员 | 4 | | 5 | 3 | 高级会员 | 5 | | 6 | 4 | | 0 | +------------+--------+------------+---------+ 为什么出现:ERROR 1305 (42000): FUNCTION test.group_contact does not exist ??? |