oracle wm_concat 列转行 逗号分隔_oracle

[sql]

复制代码 代码如下:

create table wlbtest1(
username varchar2(2),
deptID number
);
create table wlbtest2(
deptName varchar2(10),
deptID number
);
insert into wlbtest1 values ('a', 1);
insert into wlbtest1 values ('b', 1);
insert into wlbtest1 values ('c', 1);
insert into wlbtest1 values ('d', 2);
insert into wlbtest1 values ('e', 2);
insert into wlbtest1 values ('f', 2);
insert into wlbtest2 values ( '部门1' ,1);
insert into wlbtest2 values ( '部门2', 2);
select deptID, wm_concat(username) username,'部门'||deptID deptName from wlbtest1 group by deptID

 

执行结果:

 


 

时间: 2024-09-20 19:45:57

oracle wm_concat 列转行 逗号分隔_oracle的相关文章

Oracle的列转行函数

1.列转成行,如下数据 ID NAME ---------- ------------------------------        10 ab        10 bc        10 cd        20 hi        20 ij        20 mn 6 rows selected 2.调用oracle的函数 SQL> select id,wmsys.wm_concat(name) name from idtable 2 group by id;        ID

Oracle的数据表中行转列与列转行的操作实例讲解_oracle

行转列一张表 查询结果为 --行转列 select years,(select amount from Tb_Amount as A where month=1 and A.years=Tb_Amount.years)as m1, (select amount from Tb_Amount as A where month=2 and A.years=Tb_Amount.years)as m2, (select amount from Tb_Amount as A where month=3 a

SQL中行转列和列转行

行转列,列转行是我们在开发过程中经常碰到的问题.行转列一般通过CASE WHEN 语句来实现,也可以通过 SQL SERVER 2005 新增的运算符PIVOT来实现.用传统的方法,比较好理解.层次清晰,而且比较习惯. 但是PIVOT .UNPIVOT提供的语法比一系列复杂的SELECT...CASE 语句中所指定的语法更简单.更具可读性.下面我们通过几个简单的例子来介绍一下列转行.行转列问题. 我们首先先通过一个老生常谈的例子,学生成绩表(下面简化了些)来形象了解下行转列 CREATE TAB

Oracle逗号分隔列转行实现方法_oracle

那么,现在如果给出一个权限编号,要去检索出用后这个权限的用户集合,就会需要在逗号分隔的多个权限编号中去匹配给出的这个权限编号.如果使用like去做,一则效率不高,二则匹配不精确.因此用到了逗号分隔列转行的方法.目前该方法只适合在oracle数据库中使用.该方法只需要sql语句就可以实现列转行. 下面给出该方法的示例: select a,b,c from(with test as (select 'aaa' a,'bbb' b,'1,2,3' c from dual)select a,b,subs

T-SQL 经典行专列、列转行,分页及存储过程(转)

T-SQL 经典编程 说明:本实例是以 SQL Server 2005 为运行环境的. 准备工作:创建一个名为 DB 的数据库(CREATE DATABASE DB).   一.T-SQL 行转列 1.创建如下表 CREATE  TABLE [Scores]  (       [ID] INT IDENTITY(1,1),    --自增标识       [StuNo] INT,                 --学号       [Subject] NVARCHAR(30), --科目   

.net-sql列转行,求sql大神帮忙解决。

问题描述 sql列转行,求sql大神帮忙解决. 如题 姓名 部门 题目ID 题目答案 A 编辑部 1 tt A 编辑部 2 yy A 编辑部 3 hh B 测试部 1 tt B 测试部 3 cc 我想要这样的结果 姓名 部门 第一题 第二题 第三题 ...等 A 编辑部 tt yy hh B 测试部 tt NULL CC 解决方案 你的题目只有1,2,3还是不确定呢 解决方案二: SELECT distinct 姓名 ,部门 ,LEFT(UserList,LEN(UserList)-1) as

mssql 数据库表行转列,列转行终极方案

复制代码 代码如下: --行转列问题 --建立測試環境 Create Table TEST (DATES Varchar(6), EMPNO Varchar(5), STYPE Varchar(1), AMOUNT Int) --插入數據 Insert TEST Select '200605', '02436', 'A', 5 Union All Select '200605', '02436', 'B', 3 Union All Select '200605', '02436', 'C', 3

重温SQL——行转列,列转行

行转列,列转行是我们在开发过程中经常碰到的问题.行转列一般通过CASE WHEN 语句来实现,也可以通过 SQL SERVER 2005 新增的运算符PIVOT来实现.用传统的方法,比较好理解.层次清晰,而且比较习惯. 但是PIVOT .UNPIVOT提供的语法比一系列复杂的SELECT...CASE 语句中所指定的语法更简单.更具可读性.下面我们通过几个简单的例子来介绍一下列转行.行转列问题. 我们首先先通过一个老生常谈的例子,学生成绩表(下面简化了些)来形象了解下行转列  CREATE TA

ado.net-求一个无参数 调用存储过程的方法,我调用的是列转行的存储过程 但是访问数据库的方法不知道怎么写

问题描述 求一个无参数 调用存储过程的方法,我调用的是列转行的存储过程 但是访问数据库的方法不知道怎么写 访问数据不知道写 存储过程已经写好 解决方案 prepareCall()方法调用存储过程 解决方案二: use 数据库名称 这不是方法 解决方案三: use 数据库名称 用这个语句就能指向数据库 解决方案四: exec 存储过程名称