异同点 都可以对表行转列: DECODE功能上和简单Case函数比较类似,不能像Case搜索函数一样,进行更复杂的判断 在Case函数中,可以使用BETWEEN, LIKE, IS NULL, IN, EXISTS等等(也可以使用NOT IN和NOT EXISTS,但是这个时候要注意NULL的情况.) DECODE方法 (Oracle公司独家) decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) --该函数的含义如下: IF 条件=值1 THEN RETURN(翻…
1.行转列:有两种写法,一种是case when end写法,另一种写法是pivot(oracle 11g新增) select job, then sal end) as sal10, then sal end) as sal20, then sal end) as sal30, sum(sal) as allsal from emp group by job ; select * from (select job,sal,deptno from emp) pivot( , as d30)) ;…
--1.遍历字符串 --1.1.建立测试视图 CREATE OR REPLACE VIEW V AS SELECT '天天向上' AS 汉字,'TTXS' AS 首拼 FROM DUAL; --要求每个汉字对应相应的首拼字母显示 ) 汉字,SUBSTR(首拼,) 首拼,LEVEL FROM V CONNECT ; /*总结:CONNECT BY是树形查询的一个子句,后面的LEVEL是一个“伪列”,表示树形中的级别层次,通过LEVEL<=?循环?次,就形成?行数据,LEVEL以1为步长递增*/ -…
Oracle行转列 参数动态传入iBatis使用示例 最近做了一个需求,需要获取工作流数据的各个节点的渠道数量信息,各渠道的费用信息~ 之前的需求是只需要获取渠道数据,所以做了渠道兼容,每个渠道数量的获取都是先case when 处理,然后再sum统计的 方案一:手动汇总数据为列数据(先case when 计算再sum统计) 例如: #统计渠道数据量:渠道代码相同时,渠道数据计数1,不同时计数0 select taskname , case when t.CHANNEL_CODE = #ch…
!= 不等于 select empno,ename,job from scott.emp where job!='manager' ^= 不等于 select empno,ename,job from scott.emp where job^='manager' <>不等于 select empno,ename,job from scott.emp where job<>'manager' <小于 select sal from scott.emp where sal<…
ORAchk概述 ORAchk是Oracle官方出品的Oracle产品健康检查工具,可以从MOS(My Oracle Support)网站上下载,免费使用.这个工具可以检查Oracle数据库,GoldenGate,Oracle Enterprise Manager 12c.13c等Oracle产品,具体支持的产品和相关资料可以参考MOS文档:ORAchk - Health Checks for the Oracle Stack (Doc ID 1268927.2). ORAchk支持所有主流平台…
1. 如何查看表的列名及类型 SQL> select column_name,data_type,data_length from all_tab_columns where owner='SCOTT' and table_name='EMP'; COLUMN_NAME DATA_TYPE DATA_LENGTH --------------- ---------- ----------- EMPNO ENAME JOB MGR HIREDATE DATE SAL COMM DEPTNO row…