使用WMSYS.WM_CONCAT实现行转列!
来源:互联网 发布:硕鼠 mac 编辑:程序博客网 时间:2024/06/06 21:53
在BBS上面看到一个比较不错的行转列的问题,大致SQL如下:
CREATE TABLE foo( fooid NUMBER(20), fooname VARCHAR2(20), foobar VARCHAR2(20));INSERT INTO foo VALUES('1','张三','a');INSERT INTO foo VALUES('1','张三','b');INSERT INTO foo VALUES('2','李四','a');INSERT INTO foo VALUES('3','王五','a');INSERT INTO foo VALUES('3','王五','b');INSERT INTO foo VALUES('3','王五','c');SELECT * FROM foo;
我当时以为,下面的sql是一个比较不错的答案:
SELECT foo.fooid,foo.fooname, MAX(CASE WHEN foo.foobar='a' THEN foo.foobar END) AS A, MAX(CASE WHEN foo.foobar='b' THEN foo.foobar END) AS B, MAX(CASE WHEN foo.foobar='c' THEN foo.foobar END) AS CFROM fooGROUP BY foo.fooid,foo.foonameORDER BY 1;
但是看到别人的答案是这个:
SELECT FOO.FOOID, FOO.FOONAME, WMSYS.WM_CONCAT(FOO.FOOBAR) BAR FROM FOO GROUP BY FOO.FOOID, FOO.FOONAME;
作者 陈字文(热衷于PM\ORACLE\JAVA等,欢迎同行交流):ziwen#163.com 扣扣:4零9零2零1零零
于是知道了这个函数,具备行转列的作用,很是不错哦!使用WMSYS.WM_CONCAT 实现行转列。
- 使用WMSYS.WM_CONCAT实现行转列!
- 使用WMSYS.WM_CONCAT实现行转列!
- 使用WMSYS.WM_CONCAT函数实现行列转换
- 使用WMSYS.WM_CONCAT函数实现行列转换
- 使用WMSYS.WM_CONCAT函数实现行列转换
- WMSYS.WM_CONCAT行转列函数使用例子
- 关于ORACLE wmsys.wm_concat 行转列函数使用
- SQL函数:WMSYS.WM_CONCAT行转列
- wmsys.wm_concat
- wmsys.wm_concat
- wmsys.wm_concat
- wmsys.wm_concat
- SqlServer实现oracle10g的 wmsys.wm_concat()
- 使用 WMSYS.WM_CONCAT 进行列转换
- oracle内置函数 wmsys.wm_concat使用
- Oracle函数wmsys.wm_concat的使用
- Oracle函数wmsys.wm_concat的使用
- oracle wmsys.wm_concat(column)函数的使用
- 简单枚举题,0到9全排列
- 1501 Zipper
- centos 网卡设置
- 堆、栈的区别
- Detailed Information on ODS and DSO object
- 使用WMSYS.WM_CONCAT实现行转列!
- C#Excel导入和导出
- PrintStream
- 条款2:尽量以const,enum,inline替换#define
- 【lizhi125】FindDupFile - 轻松查找与清理电脑上的重复文件、照片的绿色软件
- C关键字sizeof
- MongoDB的权限
- sourceinsight 设置技巧
- SQLYog快捷键大全