今天在工作中遇到一个需求,需要把SQL语句的查询结果的列转成一行,请教同事后得知可以使用wm_concat()这个函数,现记录在此。

wm_concat()用于将列转为行,列数据之间用逗号隔开,注意其得到的结果类型为CLOB,可以通过to_char()函数转换成varchar2。由于在公司外网没办法连数据库,所以下面的例子纯手打,并非是数据库显示的结果。

假设有oracle中有如下表t_example_employee,内容如下

select * from t_example_employee;
---------------------------------------------------
id     name     age
1       lili           27
2      lucy         26
3       tom        27
4       jim         26
----------------------------------------------------

需要得到年龄为27的员工所有员工,并做为一行返回,可以使用

select to_char(wm_concat(name)) names from t_example_employee where age=27;
---------------------------------------------------
NAMES
lili,tom
---------------------------------------------------

而如果我们不想使用默认的“,”分隔,可以通过replace()函数来实现,比如需要将上面的名字用“;”分隔

select replace(to_char(wm_concat(name)),',',';') names from t_example_employee where age=27;
---------------------------------------------------
NAMES
lili;tom
---------------------------------------------------

看到这里,我想到了以前有人问过的一个需求:一个表有50个字段,而我只需要查询49个字段,如果来得到select的内容,难到要一个一个去写字段?其实我们就可以使用wm_concat()来实现,如下所示

select 'select ' || wm_concat(column_names) || ' from t_example_employee' sqlexpr from user_col_comments;
--------------------------------------------------------------------------------------
SQLEXPR
select ID,NAME,AGE from t_example_employee
--------------------------------------------------------------------------------------

有了上面的结果,你想删哪个字段就删哪个,是不是方便很多啊。

知识点备忘-oracle的wm_concat()函数相关推荐

  1. Oracle中wm_concat函数报错解决方法

    Oracle中wm_concat函数报错解决方法 参考文章: (1)Oracle中wm_concat函数报错解决方法 (2)https://www.cnblogs.com/52net/archive/ ...

  2. oracle vm concat指定分隔符,重写Oracle的wm_concat函数,自定义分隔符、排序

    oracle中,wm_concat函数是一个聚合函数,和mysql中的group_concat函数类似,不过group_concat函数比较强大,可以定义分隔符和排序,当然所谓强大是相对的,这里假使我 ...

  3. T-SQL备忘(2):聚合函数运算和NULL

    T-SQL备忘(2):聚合函数运算和NULL 我们看表的数据: 而select AVG(Age) from Member1的结果为27.自己算一下就知道136/6 =22.666.而不是27,因此知道 ...

  4. Oracle的wm_concat()函数与Mysql的group_concat()函数

    这两个函数的作用是相同的,它们的功能是:实现行转列功能,即将查询出的某一列值使用逗号进行隔开拼接,成为一条数据. 1.Oracle的wm_concat()函数 2.Mysql的group_concat ...

  5. 重写Oracle的wm_concat函数,自定义分隔符、排序

    oracle中,wm_concat函数是一个聚合函数,和mysql中的group_concat函数类似,不过group_concat函数比较强大,可以定义分隔符和排序,当然所谓强大是相对的,这里假使我 ...

  6. Oracle数据库wm_concat()函数的使用方法

    oracle数据库中wm_concat(column)函数使我们经常会使用到的,下面就教您如何使用oracle数据库wm_concat(column)函数实现字段合并 如: shopping: --- ...

  7. oracle的wm_concat函数实现行转列

    有以下数据 deptname phone username isboss 部门A 电话1 员工A 0 部门A 电话1 领导A 1 部门B 电话2 员工B 0 部门B 电话2 员工C 0 部门B 电话2 ...

  8. Oracle没有WM_CONCAT函数的解决办法

    解决ORA-00904: "WMSYS"."WM_CONCAT" WM_CONCAT是oracle的非公开函数,并不鼓励使用,新版本oracle并没有带此函数, ...

  9. oracle中wm_concat函数去重,oracle-常用函数-wm_contact

    oracle wm_concat(column)函数使我们经常会使用到的,下面就教您如何使用oraclewm_concat(column)函数实现字段合并 如: shopping: --------- ...

最新文章

  1. 通俗解释指数加权平均
  2. python中print又可将数据写入文件_Python 通过print_lol将数据保存到文件中
  3. Java 8星期五:Java 8的阴暗面
  4. uni开发中可以用table标签么_「uni-app 组件」t-table 表格
  5. 慎重选择博士后(或博士生)导师
  6. 绕线画算法python_绕字的意思、绕的繁体字、绕的笔顺笔画、绕字部首和繁体字绕的意思...
  7. Word怎么显示目录
  8. linux版高德导航软件下载,高德导航下载2021年最新版本_高德导航2021手机版下载-太平洋下载中心...
  9. 提升团队客户服务技能的6个秘诀
  10. 16课:关于Springboot和@Cacheable注解拉去缓存,@CacheEvict清空缓存的原理
  11. win7 android双系统,Win7+Android双系统 Acer AOD255评测
  12. crontab在线生成工具
  13. eclipse字体颜色设置的方法
  14. python全栈开发书籍推荐_python全栈开发学习 01
  15. 【架构实战day1】京东开放平台的架构与演进
  16. 蓝桥杯 试题 算法提高 阴谋(C++)
  17. Ubuntu16.04下折腾Nvidia Quadro P3200显卡驱动笔记 (dell Precision 7730 )
  18. mysql ne_eq相等 ne、neq不相等, gt大于, lt小于 gte、ge大于等于 lte、le 小于等于 not非 mod求模 等...
  19. java爬取智联招聘职位信息
  20. 非常非常好用的在线翻译网站

热门文章

  1. 高精度、高可靠性、可引线接合安装的NTC热敏电阻
  2. star 序列比对2020-12-25
  3. 使用PyCharm运行AVOD -- Aggregate View Object Detection
  4. JBoss AS 7.1.1.Final 下载与安装
  5. 给视频嵌入字幕的神器 MKVToolNix
  6. Zend Studio 12.5安装教程(win32、win64完整版)
  7. C++略识之浅拷贝与深拷贝
  8. Dubbo源码解析-——SPI机制
  9. 大客户市场:阿里云、腾讯云、华为云“贴身肉搏”
  10. 自然语言处理nlp:文本处理库SnowNLP介绍及应用