`
hgq0011
  • 浏览: 539580 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

(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中怎么办?谢谢!

 

 

分享到:
评论
3 楼 angeltping 2008-03-25  
1。sql来改完全是哎,不好说得,效率极低。要是表大了,基本没有反应了。
2.处理这种一般在程序里处理或者存储过程来处理
2 楼 让胡路车站 2008-03-10  
Oracle 8i及以上:
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.
1 楼 hgq0011 2008-03-03  
原本想找一个比较简单的一条SQL能搞定的,没有找到.
我还是用了比较笨的办法,采用游标去遍历他们,然后连接起来,这样就比较繁琐麻烦.

相关推荐

    MySQL基于group_concat()函数合并多行数据

     group_concat(),手册上说明:该函数返回带有来自一个组的连接的非NULL值的字符串结果。  通俗点理解,其实是这样的:group_concat()会计算哪些行属于同一组,将属于同一组的列合并显示出来。要返回哪些列,由...

    2009达内SQL学习笔记

    SQL语句可以在一行上写出,建议多行写出,便于阅读和调试。 多条SQL语句必须以分号分隔。多数DBMS不需要在单条SQL语句后加分号,但特定的DBMS可能必须在单条SQL语句后加分号。 SQL语句的最后一句要以 “;”号...

    C#开发实例大全(基础卷).软件开发技术联盟(带详细书签) PDF 下载

    全书分6篇共25章,主要内容有C#开发环境的使用、C#语言基础应用、字符串处理技术、数组和集合的使用、面向对象编程技术、数据结构与算法、Windows窗体基础、特色窗体界面、窗体控制技术、MDI窗体和继承窗体、Windows...

    Python核心编程第二版(ok)

     6.4.2 字符串模板c更简单的替代品   6.4.3 原始字符串操作符(rR)   6.4.4 Unicode字符串操作符(uU)   6.5 内建函数   6.5.1 标准类型函数   6.5.2 序列类型函数   6.5.3 字符串类型函数  ...

    .net技术资料大全(语言规范 源码教程 学习笔记 技术资料 .net代码生成器)

    语言规范 ... 字符串加密.txt 字幕显示屏幕保护.txt 自己动手用c#写控件.txt C#试题 简答题.txt 填空题.txt 问答题1.txt 问答题2.txt 选择题.txt 综合题.txt 辅助软件 aspx/asp代码生成器

    ASP升级.net资料大全(c#入门 语言规范 源码教程 学习笔记 技术资料 面试题 asp与.net代码生成器)

    辅助软件 aspx/asp代码生成器 语言规范 ... 字符串加密.txt 字幕显示屏幕保护.txt 自己动手用c#写控件.txt C#试题 简答题.txt 填空题.txt 问答题1.txt 问答题2.txt 选择题.txt 综合题.txt

    《程序天下:JavaScript实例自学手册》光盘源码

    13.19 将日期转换为字符串的方法 13.20 检测是否是闰年 13.21 年份加减函数 13.22 精确到千分之一秒 13.23 离开某天的时间 13.24 判断两个字符串日期的大小 13.25 显示登录时间 13.26 中文日期样式(一) 13.27 中文...

    程序天下:JavaScript实例自学手册

    13.19 将日期转换为字符串的方法 13.20 检测是否是闰年 13.21 年份加减函数 13.22 精确到千分之一秒 13.23 离开某天的时间 13.24 判断两个字符串日期的大小 13.25 显示登录时间 13.26 中文日期样式(一) 13.27 中文...

    Python核心编程第二版

     6.4.2 字符串模板: 更简单的替代品   6.4.3 原始字符串操作符(r/R)   6.4.4 Unicode字符串操作符(u/U)   6.5 内建函数   6.5.1 标准类型函数   6.5.2 序列类型函数   6.5.3 字符串类型函数...

Global site tag (gtag.js) - Google Analytics