Oracle行转列函数

1 需求

在实际开发中,行转列函数可以把列值以逗号分隔起来,并显示成一行。现要求利用一条sql语句获得表emp中所有员工姓名,且要求在前台页面中作为一个字符串出现,在这个字符串中员工之间的姓名用逗号分隔开。

2 程序

create or replace function row2col(sqlString varchar2) return varchar2 as

begin

declare type cu_type is ref cursor;

cur_name cu_type;

tmp_name varchar2(20);

names varchar2(500);

begin

open cur_name for sqlString;

fetch cur_name into tmp_name;

while cur_name%found loop

names := names || tmp_name || ',';

fetch cur_name into tmp_name;

end loop;

return rtrim(names, ',');

end;

end row2col;

/

3 调用

select row2col('select ename from emp') result from dual;

这里result即为内查询得到临时表的别名,也可以去掉

select row2col('select ename from emp') from dual;

4 执行结果

RESULT

--------------------------------------------------------------------------------

SMITH,ALLEN,WARD,JONES,MARTIN,BLAKE,CLARK,SCOTT,KING,TURNER,ADAMS,JAMES,FORD,MIL

LER

5 注意

参数sqlString必须是一个返回单列的SQL语句,否则,此函数将抛出错误。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29485627/viewspace-1248678/,如需转载,请注明出处,否则将追究法律责任。

oracle逗号隔开行转列_Oracle行转列函数相关推荐

  1. mysql 交叉表行转列_Oracle行转列、列转行的Sql语句总结

    多行转字符串 这个比较简单,用||或concat函数可以实现 SQL Code selectconcat(id,username)strfromapp_user selectid||usernames ...

  2. oracle逗号隔开行转列_oralce逗号分割变多行 Oracle中REGEXP_SUBSTR函数

    Oracle中REGEXP_SUBSTR函数 Oracle 中REGEXP_SUBSTR函数的使用说明: 题目如下:在 oracle 中,使用一条语句实现将'17,20,23'拆分成'17','20' ...

  3. oracle逗号隔开行转列_oralce逗号分割变多行-Oracle

    oralce逗号分割变多行 方法一 select  a.*  , REGEXP_SUBSTR(a.rolecode ,'[^,]+',1,l) AS rolecode from p_user a,(S ...

  4. oracle unpivot 索引_Oracle 行转列pivot 、列转行unpivot 的Sql语句总结

    这个比较简单,用||或concat函数可以实现 select concat(id,username) str from app_user select id||username str from ap ...

  5. 行转列逗号隔开逗号隔开列转行

    ORACLE: SQL> create table t(id int,name varchar2(30));表已创建.SQL> insert into t values(1,'a');已创 ...

  6. oracle 动态sql列转行_Oracle 行转列 动态出转换的列

    10月的第二天,前天写了个Oracle中行转列的pivot的基本使用方法,然后,因为pivot的用法中,正常情况下,我们需要转出多少个列,都得在我们的sql中完完整整地写出,而不能直接在里面写个查询来 ...

  7. oracle列转行用逗号隔开,Oracle逗号分隔列转行实现方法

    Oracle逗号分隔列转行实现方法 那么,现在如果给出一个权限编号,要去检索出用后这个权限的用户集合,就会需要在逗号分隔的多个权限编号中去匹配给出的这个权限编号.如果使用like去做,一则效率不高,二 ...

  8. oracle 行级死锁_ORACLE死锁的分类

    ORACLE里锁有以下几种模式: 0:none 1:null 空 2:Row-S 行共享(RS):共享表锁,sub share 3:Row-X 行独占(RX):用于行的修改,sub exclusive ...

  9. oracle数据库行转化成列,ORACLE行转列(行转一列,行转多列)

    --listagg(合并多行的值为字符串,只用一列来显示) select status, count(*), listagg(risk_id, ',') within group (order by ...

最新文章

  1. maven工程指定web资源包,创建jsp文件
  2. Docker用Dockerfile定制镜像
  3. 徐教授的对于商业模式创新的讲座!十分有用!
  4. windows运行对话框_如何在Windows运行对话框中添加文本快捷方式?
  5. char 与 String 相等比较
  6. 【开源】本周不容错过开源论文,含分割、检索、神经渲染、deepfake 检测、超分、视频相关等...
  7. Python之路【第三篇】:Python基础(二)
  8. 百度APP月活跃用户达5.6亿,日登录用户占比超75%
  9. Android 开机自启动应用
  10. 高中计算机教学设计案例分析,高一年级信息技术教学设计(案例)
  11. 决策树算法与python——心脏病预测
  12. 解决 错误: 在类XXX中找不到 main 方法, 请将 main 方法定义为: public static void main(String[] args) 否则 JavaFX 应用程序类
  13. RabbitMQ消息确认机制-可靠抵达
  14. vi 常用复制与粘帖技巧
  15. vite以及webpack(@vue/cli 5.x) vue3 alias别名配置
  16. Ubuntu11.10无法打开softer center(软件中心)和language support的解决
  17. 如何买入期货合约(如何买入期货合约交易)
  18. 编译DPC++ Compiler(支持Nvidia显卡)
  19. 【技术三千问】之《modbus问题难点解析》,避坑指南!
  20. 计世传媒集团中国CIO高峰论坛:“智变·创变”中的未来,CIO不只是CIO

热门文章

  1. 余额宝操盘手:互联网思维推倒一切
  2. react页面引导组件, 支持语音播报
  3. Springboot整合Elasticsearch搜索引擎+vue页面
  4. B-spline Curves 学习之B样条基函数的定义与性质(2)
  5. Beta分布及其应用
  6. java数组如何赋值_java数组如何赋值
  7. python红包程序_Python写随机发红包的原理流程
  8. lfu算法实现c语言_Redis中的LFU算法
  9. SqlServer2005数据库紧急恢复案例
  10. 用MySQL绘制新年祝福图形_2017微信拜年图片-2017微信拜年动态表情图片高清完整版-东坡下载...