Oracle 多行转列函数
Oracle中使用WMSYS.WM_CONCAT函数进行多行转列
原数据:
rank name
AA NAME1
AA NAME2
AA NAME3
BB NAME4
BB NAME5
SQL>select trim(t.rank) as rank,
wmsys.wm_concat(trim(t.name)) as name
from table_name t
group by t.rank;
实现的效果是:会先按rank分组,将分组后的name以“,”按组合并为一列。
结果如下:
rank name
AA NAME1,NAME2,NAME3
BB NAME4,NAME5
注:默认以“,”字符连接合并后的结果
相关文档:
最近忙于公司的项目开发,很久没有来csdn了。今天无事,上来写点东西。供大家参考,不对的地方还希望大家批评指正。
一下是对oracle数据库表的一些操作语句:
已经建好的表添加字段
alter table Tablename add(column1&nb ......
1、通过Toad将数据可结构生成SQL(注意用户)。
[DataBase] [Export] [GenerateSchmaScript]
2、创建DBLink.
DROP PUBLIC DATABASE LINK "ROOT.US.ORACLE.COM";
CREATE PUBLIC DATABASE LINK "ROOT.US.ORACLE.COM"
&nb ......
小型机路线,几乎已被封死。无法使用Sun,它已和Oracle紧密绑定,若还使用上述设计,会很难说服售前将小型机、存储、数据库分别从不同厂商采购;另外,亦无法使用IBM,据说FLY的某个老板不喜欢。 大力推进数据库系统PC化,这似乎是最佳策略。FLY应用对数据 ......
1.曾经不小心把开发库的数据库表全部删除,当时吓的要死。结果找到下面的语句恢复到了1个小时之前的数据!很简单。
注意使用管理员登录系统:
select * from 表名 as of timestamp sysdate-1/12 //查询两个小时前的某表数据!既然两小时以前的数据都得到了,继续怎么做,知道了吧。。
如果drop了表,怎么办??见下 ......
数据库数据
ID
UserName
Date
1
User1
2010/4/27
1
User1
2010/4/11
1
User1
2010/4/1
要求:
获取最新日期的一条数据
Sql语句:
select t.* from tb t where date = (select max(date) from tb where id = t.id) order by t.id ......