`
hgq0011
  • 浏览: 555240 次
  • 性别: 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能搞定的,没有找到.
我还是用了比较笨的办法,采用游标去遍历他们,然后连接起来,这样就比较繁琐麻烦.

相关推荐

    sql 多行合并某一列字符串拼接的示例

    通过这种方式,我们可以有效地将多行数据转换为一行,同时在一个列中拼接所需的字符串值。这种方法在处理大型数据集或需要高级数据聚合的情况下尤其有用。掌握了这一技巧,数据分析师和数据库管理员可以在处理复杂的...

    SQLServer中如何将一个字段的多个记录值合在一行显示

    SQLServer 中将一个字段的多个记录值合并到一行显示的实现方法 SQL Server 是一种关系型数据库管理系统,具有强大的数据处理能力和存储能力。在实际应用中,我们经常需要将一个字段的多个记录值合并到一行显示,以...

    SQL合并一列

    在SQL Server中,可以通过这种方式轻松地将多行数据转换为单行数据,实现列的合并。 #### 3. 示例代码解析 提供的示例代码展示了如何使用`FOR XML PATH`来合并一列数据: ```sql SELECT -- 使用STUFF函数去除第...

    Sql Server数据把列根据指定内容拆分数据的方法实例

    在SQL Server中,有时我们需要处理存储在单个列中的数据,这些数据可能以特定分隔符(如逗号)的形式存在。这样的数据结构虽然在存储时节省空间,但在数据分析和查询时却带来了挑战。本文将深入探讨如何使用SQL ...

    mysql如何将多行数据合并成一行

    在MySQL数据库中,有时我们需要将具有相同分组标识的多行数据合并成一行,以便于数据分析和报告。这里,我们主要关注的是`GROUP_CONCAT`函数,它是一种非常实用的SQL聚合函数,能够帮助我们实现这个目标。下面,我们...

    SQL CASE及结构转换问题

    2. **行转列**:相反,如果有多行数据代表同一属性的不同值,可以转换为一列。例如,将不同城市的销售数据转换为城市列为标题,数值为销售额的格式。 3. **类型转换**:在SQL中,我们还需要经常进行数据类型的转换...

    Sql Server:多行合并成一行,并做分组统计的两个方法

    在Sql Server中进行多行合并成一行,并做分组统计的需求,可以通过两种主要方法实现。首先,需要创建一个测试表并插入数据,以供后续操作。以下是创建测试表和插入数据的SQL语句: ```sql CREATE TABLE test(code ...

    SQL行合并值

    在SQL查询中,有时我们需要将多行数据合并成一行,这种情况通常发生在我们想要组合相似的数据或者展示一个总结视图时。这种技术被称为行合并或行聚合。本篇将深入探讨如何在SQL中实现行合并值。 首先,让我们理解...

    sql格式化JS脚本

    2. **换行**:根据语法规则,将长语句拆分为多行,每个操作符或关键字占据一行,提高可读性。 3. **关键词大写**:通常SQL关键词被转换为大写,以区分于表名、列名等标识符。 4. **去除多余空格**:移除多余的空格,...

    Sql function 多行中的列合并为一行一列的方法

    在SQL中,有时候我们需要将多行数据合并成一行,特别是在处理分类信息或者多个原因描述时。这个场景下,我们可以使用SQL的内置函数和自定义函数来实现。在给出的示例中,`tb` 表存储了不同标准(`standards`)、数量(`...

    CSharp-SQL.rar_C# sql 查询 txt_C#不让sql换行_c# SQL 树形列表_c# sqlserver操

    另一种方法是使用三重引号(""")来定义多行字符串,这样在字符串内部的换行会被忽略。 "C#_sql_树形列表"指的是如何在C#中将数据库查询结果以树形结构显示出来,这在GUI应用中尤其常见,如文件管理器或组织架构...

    ORACLESQL自学1.ppt

    SQL 语言大小写不敏感,可以写在一行或者多行,关键字不能被缩写也不能分行,而各子句一般要分行写。使用缩进可以提高语句的可读性。 三、算术运算符的使用 算术运算符用于执行数学运算,如加减乘除等。操作符包括...

    ORACLE-SQL自学.pptx

    语句可以写在一行或多行,关键字不能缩写,子句之间建议分行,同时使用缩进来增强可读性。 4. **列头设置**:在SQL*Plus环境中,列的显示方式根据数据类型有所不同,字符和日期类型的列通常左对齐,字符类型右对齐...

    Oracle SQL Fundamentals Part 1

    在 Oracle SQL 中,使用 `||` 运算符可以将两个或多个字符串连接成一个新字符串。这种操作常用于组合列值以形成新的列或输出格式。 **示例代码**: ```sql SQL> SELECT last_name || job_id AS employees FROM ...

    SQL Language Reference

    - LIKE运算符:用于模糊匹配字符串。 - **排序与分组**: - ORDER BY子句:用于对结果集进行排序。 - GROUP BY子句:用于按列分组数据。 - HAVING子句:用于过滤GROUP BY的结果。 #### 五、SQL数据操作 - **...

    HBASE数据库.docx

    表中的数据组织成列族(Column Family)的形式,每个列族可以包含多个列,列族是表的模式的一部分,需要在创建表时预先定义。列名由列族名和列标签组成,如`courses:history`和`courses:math`属于`courses`列族。列...

    Oracle公司内部数据库培训资料Les01.pptx

    6. **SQL语句书写规范**:SQL语句大小写不敏感,可以写在一行或多行,关键字不能缩写且一般分行书写,使用缩进来提升可读性。 7. **算术运算符**:SQL支持基本的数学运算符+、-、*、/,它们的优先级遵循常规的数学...

Global site tag (gtag.js) - Google Analytics