oracle行列转换函数的使用】的更多相关文章

oracle 10g wmsys.wm_concat行列转换函数的使用: 首先让我们来看看这个神奇的函数wm_concat(列名),该函数可以把列值以","号分隔起来,并显示成一行,接下来上例子,看看这个神奇的函数如何应用   1.把结果按分组用逗号分割,以一行打印出来.(如果需要换其它的可以用replace函数:replace(wm_concat(name),',','|')) select t.u_id,        wmsys.wm_concat(t.goods),      …
一.wm_concat函数 wm_concat能够实现同样的功能,但是有时在11g中使用需要用to_char()进行转换,否则会出现不兼容现象(WMSYS.WM_CONCAT: 依赖WMSYS 用户,不同oracle环境时可能用不了,返回类型为CLOB,可用substr截取长度后to_char转化为字符类型). 测试用表test_org_bak select * from test_org_bak; 1.:行转列(默认逗号隔开) select wm_concat(level_four_name)…
一.行转列pivot 关键函数pivot,其用法如下 pivot(聚合函数 for 列名 in(类型)) select * from table_name pivot(max(column_name)                            --行转列后的列的值value,聚合函数是必须要有的                               for column_name in(value_1,value_2,value_3)     --需要行转列的列及其对应列的属性…
一.建表与插入数据 1.1.建表 create table kecheng ( id NUMBER, name ), course ), score NUMBER ); insert into kecheng (id, name, course, score) , ); insert into kecheng (id, name, course, score) , ); insert into kecheng (id, name, course, score) , ); insert into…
oracle 行列转换列名如果是数字,用双引号包住  如下: --  建表 create table workinfo(wid integer primary key,sid integer ,CONSTRAINT sid foreign key(sid) references student(sid),city nvarchar2(100),-- 就业城市wage number(10,2),-- 月薪workdate date,-- 就业时间eid integer ,CONSTRAINT ei…
Oracle 大小写转换函数 转大写UPPER 转小写LOWER 测试: select UPPER('Test') as u from dual; select LOWER('Test') as l from dual; 结果: 参考: Oracle 大小写转换函数…
最近几天一直在弄Oracle-SQL的问题,涉及到了一些平时没有用到的东西,也因此而在这里郁闷了好久.现在问题得到了解决虽说不算完美.但是还是和大家一起分享一下. 行列转换之一:sum(case when.. then.. else.. end) as 语句 这种也可能是我们遇到的第一个行列转换的方法.巧妙的利用汇总和判断语句就可以解决的. 先看一个简单的基础表:如下图 create table STUDENT(  STUNAME      NVARCHAR2(50),  SUBJECTNAME…
原贴地址:http://www.itpub.net/thread-1017026-1-1.html 谢谢原贴大人 最近论坛很多人提的问题都与行列转换有关系,所以我对行列转换的相关知识做了一个总结, 希望对大家有所帮助,同时有何错疏,恳请大家指出, 我也是在写作过程中学习,算是一起和大家学习吧. 行列转换包括以下六种情况: *列转行 *行转列 *多列转换成字符串 *多行转换成字符串 *字符串转换成多列 *字符串转换成多行 下面分别进行举例介绍. 首先声明一点,有些例子需要如下10g及以后才有的知识…
行列转换包括以下六种情况:*列转行*行转列*多列转换成字符串*多行转换成字符串*字符串转换成多列*字符串转换成多行 下面分别进行举例介绍. 首先声明一点,有些例子需要如下10g及以后才有的知识:a.掌握model子句b.正则表达式c.加强的层次查询 讨论的适用范围只包括8i,9i,10g及以后版本.begin: 1.列转行 未列转行之前的效果如下: 列转行的效果如下: sql代码: CREATE TABLE t_col_row(    ID INT,    c1 ),    c2 ),    c…
关键字:    行专列,列转行, pivot, unpivot 行列转换是在数据分析中经常用到的一项功能,KingbaseES从V8R6C3B0071版本开始通过扩展插件(kdb_utils_function)支持了pivot和unpivot功能.在之前的版本如果需要进行行列转换操作要如何处理呢?下面介绍通用的写法,最后再介绍pivot和unpivot 用法. 一.行转列(pivot) 构造数据: create table pivot_t1(month integer,fruitname tex…
在数据库中主要使用数据类型:字符,数字,日期(时间戳),所以这三种数据类型之间需要实现转换操作. 常用转换函数: 3.1.TO_CHAR()函数 将数据类型变为字符串. 日期格式化标记: 在TO_CHAR()函数里面,需要两个参数:日期数据.转换格式.…
使用wmsys.wm_concat 实现行合并 在 Oracle  中, 将某一个栏位的多行数据转换成使用逗号风格的一行显示.能够使用函数  wmsys.wm_concat 达成. 这个在上一篇 oracle内置函数 wmsys.wm_concat使用 中也介绍到. 參考这一段 " Case 1: 列转换行. 以一行显示全部员工的名字 select wmsys.wm_concat(NAME) from employee; 结果: user1,user2 " 如今有个问题, 反过来怎样显…
目录结构如下:行转列列转行[一].行转列 1.1.初始测试数据 表结构:TEST_TB_GRADE Sql代码 create table TEST_TB_GRADE (   ID        NUMBER(10) not null,   USER_NAME VARCHAR2(20 CHAR),   COURSE    VARCHAR2(20 CHAR),   SCORE     FLOAT )  初始数据如下图:                       1.2. 如果需要实现如下的查询效果…
作为Oracle开发工程师,推荐大伙看看 PIVOT and UNPIVOT Operators in Oracle Database 11g Release 1 This article shows how to use the new PIVOT and UNPIVOT operators in 11g, as well as giving a pre-11g solution to the same problems. PIVOT UNPIVOT Related articles. PIV…
问题: 员工表: A(E_ID,NAME,) 部门表:  B(D_ID,D_NAME) 员工与部门关系:C(ID,E_ID,D_ID) SELECT  A.E_ID,A.NAME ,B.D_NAME FROM A INNER JOIN C ON A.E_ID=C.E_ID INNER JOIN B ON B.D_ID=C.D_ID; 这样查处的记录会出现, 1,张三,研发部 1,张三,市场部 2,李四,销售部 我想查询结果显示成这样: 1,张三,研发部|市场部 2,李四,销售部 3 ... SQ…
select (select name from t_area where id=areaid) 区域, end) 一月, end) 二月, end) 三月, end) 四月, end) 五月, end) 六月, end) 七月, end) 八月, end) 九月, end) 十月, end) 十一月, end) 十二月 ' group by areaid;…
Oracle中wm_concat()函数的使用 wm_concat()函数是oracle行列转换函数,该函数可以把列值以‘,’分割开来,并显示成一行. 1.原数据: 2.把结果分组以‘|’分隔,以一行打印出来 3.over(partition by )的用法 4.over(order by )的用法…
注:本文使用的数据库表为oracle自带scott用户下的emp,dept等表结构. 通过一个例子来说明行列转换: 需求:查询每个部门中各个职位的总工资 按我们最原始的思路可能会这么写:       这种结果虽然也能满足要求,但是极难阅读,我们使用oracle中的decode()函数进行改写: 这样的话就实现了需求要求的功能,其实这就是一种行列转换的方式,这是通过decode()函数实现的,是oracle独有的一个函数,如果使用通用的sql语句,那么该如何实现上面的查询结果呢?当然我们可以通过嵌…
本文更多将会介绍三思在日常中经常会用到的,或者虽然很少用到,但是感觉挺有意思的一些函数.分二类介绍,分别是: 著名函数篇 -经常用到的函数 非著名函数篇-即虽然很少用到,但某些情况下却很实用 注:N表示数字型,C表示字符型,D表示日期型,[]表示内中参数可被忽略,fmt表示格式. 单值函数在查询中返回单个值,可被应用到select,where子句,start with以及connect by 子句和having子句. (一).数值型函数(Number Functions) 数值型函数输入数字型参…
1.java程序操作Oracle java连接Oracle JDBC_ODBC桥连接 1.加载驱动: Class.forName("sun.jdbc.odbc.JdbcodbcDriver"); 2.得到连接:(和SQL Server一样) 首先,引用数据包: import java.sql.*; 连接: Connection ct=DriverManager.getConnection("jdbc:odbc:testds","用户名",&quo…
1. 字符函数 --upper(str), lower(str):将str转换成大,小写 select upper('hello') as x1, lower('HELlo') as x2 from dual; --initcap(str):将str中的每个单词的首字母大写,其他字母小写 select initcap('hELlo world!') as x from dual; --concat(str1, str2)或(str1 || str2):将str1和str2两个字符串连接成一个字符…
Oracle 转换函数 -- TO_CHAR(date|number {,fmt} {,nlsparams}) fmt:格式内容,返回的字符串是什么格式的,在此处指定:nlsparams:指定国家语言设置参数,设置一些数值中的字符,不同国家不同,默认按当前会话的设置 -- 将日期转换成字符串 -- fm:压缩因转换后字符串中多填充的空格或者数字前面填充的0 select employee_id,to_char(hire_date,'fmDD MONTH YYYY') from employees…
转换函数 日期类型转换成字符类型 select to_char(sysdate) s1, --14-3月 -16        to_char(sysdate, 'yyyy-mm-dd') s2, --2016-03-14        to_char(sysdate, 'yyyy') s3, --2016        to_char(sysdate, 'yyyy-mm-dd hh12:mi:ss') s4, --2016-03-14 10:21:57        to_char(sysda…
ORACLE常用数值函数.转换函数.字符串函数介绍. 数值函数: abs(m) m的绝对值 mod(m,n) m被n除后的余数 power(m,n) m的n次方 round(m[,n]) m四舍五入至小数点后n位的值(n缺省为0)trunc(m[,n]) m截断n位小数位的值(n缺省为0) -------------------------------------------------------------------------------- 字符函数: initcap(st) 返回st将…
时间 2014-02-25 00:05:38  ITeye-博客 原文  http://53873039oycg.iteye.com/blog/2021445 主题 MySQLOracle数据库 昨天突然在 一篇博客中看到了Mysql也有rollup函数,原博文使用了rollup进行行列统计,原博文链接如下: http://www.cnblogs.com/lhj588/archive/2012/06/15/2550392.html 本博文主要是记录下mysql和oracle使用rollup函数进…
Oracle中的转换函数有三个,分别为to_char(),to_date(),to_number() 1.to_char()的用法 格式化当前的日期时间 select sysdate,to_char(sysdate,'yyyy-mm-dd') from dual select sysdate,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual select sysdate,to_char(sysdate,'yyyy') from dual 2.t…
首先,来介绍一下Oracle的overlaps函数的用法: overlaps函数是用来判断两个时间段是否有重叠的 比如说计算 (a,b),(c,d) 就可以写成: select * from dual where (a,b) overlaps (c,d); 其中abcd都是日期格式. 注意:比较的只能是日期.如果是数字,则会报错 ORA-00932: inconsistent datatypes 最近项目在使用db2数据库,遇到overlaps函数需要转换成db2中的语法方言,其实就是转换为通用…
虚拟表DUAL介绍: dual是一张虚拟表,只有一行一列,用来构成select的语法规则. Oracle的查询中,必须使用"select 列- from 表"的完整语法,当查询单行函数的时候,from后面使用DUAL表,dual表在系统中只有一行一列,该表在输出单行函数时为了select-from的语法完整性而使用. 单行函数: 定义:对于每一个函数应用在表的记录中时,只能输入一行结果,返回一个结果. 常用的单行函数有: 字符串函数:对字符串操作: 数值函数:对数字进行计算,返回一个数…
dual单行单列的隐藏表,看不见 但是可以用,经常用来调内置函数.不用新建表 时间函数 sysdate 系统当前时间 add_months 作用:对日期的月份进行加减 写法:add_months(日期, 数值) last_dey 作用:取当时间前月的最后一天,可以跟其他函数关联使用 写法:last_day(日期) 转换函数 to_daet 作用:把特定格式的字符串转换成日期型数据 写法:to_date('字符串', 'yyyy-mm-dd hh24:mi:ss') 字符串的格式要符合格式符的要求…
()--转换函数 --数字转换字符串 )||'分' from dual; ||'' from dual; ()--日期转字符串 select to_char(sysdate,'yyyy-mm-dd') from dual; select to_char(sysdate,'yyyy')||'年'||to_char(sysdate,'mm')||'月'||to_char(sysdate,'dd')||'日' from dual; select to_char(sysdate,'yyyy-mm-dd…