2008-02-29
(SQL)同一列的多行字符串数据怎么转换成同一列的一行数据?
关键字: 多行转换成一行同一列的多行字符串数据用SQL怎么转换成同一列的一行数据?
比如:我用select department,userName from users从表中查询出如下数据
department | userName
--------------- --------------
it it1
it it2
it it3
ur ur1
ur ur2
我能不能用什么SQL对department进行分组然后变成如下的结果呢?
department | userName
--------------- --------------
it it1_it2_it3
ur ur1_ur2
似乎行列转换中只能对那些采用聚合函数的才能转换,这个东东就不知道在SQL中怎么办?谢谢!
评论
angeltping
2008-03-25
1。sql来改完全是哎,不好说得,效率极低。要是表大了,基本没有反应了。
2.处理这种一般在程序里处理或者存储过程来处理
2.处理这种一般在程序里处理或者存储过程来处理
让胡路车站
2008-03-10
Oracle 8i及以上:
nested subquery,regardless of performance.
drop table users
/
create table users
(department varchar2(20),
userName varchar2(20)
)
/
insert into users
values('it','it1');
insert into users
values('it','it2');
insert into users
values('it','it3');
insert into users
values('ur','ur1');
insert into users
values('ur','ur2');
commit
/
select max(count(*))
from users
group by department;
--
select department,
decode(substr(usernames, -1),
'_',
substr(usernames, 1, length(usernames) - 1),
usernames)
from (select department,
max(decode(rn, 1, userName, null)) || '_' ||
max(decode(rn, 2, userName, null)) || '_' ||
max(decode(rn, 3, userName, null)) usernames
from (select department,
userName,
row_number() over(partition by department order by userName) rn
from users)
group by department);
--
nested subquery,regardless of performance.
hgq0011
2008-03-03
原本想找一个比较简单的一条SQL能搞定的,没有找到.
我还是用了比较笨的办法,采用游标去遍历他们,然后连接起来,这样就比较繁琐麻烦.
我还是用了比较笨的办法,采用游标去遍历他们,然后连接起来,这样就比较繁琐麻烦.
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 194341 次
- 性别:

- 来自: 广州

- 详细资料
搜索本博客
我的相册
P1010057
共 4 张
共 4 张
最新评论
-
工期逼近,释放压力
没想到有比我更惨的人.
-- by sword721 -
工期逼近,释放压力
hgq0011 写道kele8boy 写道这种项目,肯定是失败的,典型的垃圾。我 ...
-- by hyhongyong -
工期逼近,释放压力
kele8boy 写道这种项目,肯定是失败的,典型的垃圾。我以前一家公司就是这样 ...
-- by hgq0011 -
[转载]制作从屏幕右下方 ...
在firefox下有点问题,ie下完美
-- by zhngling -
工期逼近,释放压力
这种项目,肯定是失败的,典型的垃圾。我以前一家公司就是这样,还没做完,改了又改, ...
-- by kele8boy






评论排行榜