花点时间整理下sql基础,温故而知新.文章的demo来自oracle自带的dept,emp,salgrade三张表.解锁scott用户,使用scott用户登录就可以看到自带的表. #使用oracle用户登录linux [oracle@localhost ~]$ sqlplus / as sysdba; ...... SQL> alter user scott account unlock: 四大语句 DQL语句--select DML语句--insert,upate,delete等(关键…
花点时间整理下sql基础,温故而知新.文章的demo来自oracle自带的dept,emp,salgrade三张表.解锁scott用户,使用scott用户登录就可以看到自带的表. #使用oracle用户登录linux [oracle@localhost ~]$ sqlplus / as sysdba; ...... SQL> alter user scott account unlock: 四大语句 DQL语句——select DML语句——insert,upate,delete等(关键字后带表…
0 order by asc/desc 默认升序 order by 列的名字|表达式|别名|序号 把空放在后边:order by desc nulls last 1分组函数--会自动滤空值 count(*|distinct|clumn) max min sum avg select sum(comm)/count(*) 一, sum(comm)/count(comm) 二,avg(comm) 三from emp 2 过滤解决,空值替换函数,NVL(comm,0) 1 select count(*…
返回处理后的数据,不同于round()(对数值进行四舍五入处理),该函数不对指定小数前或后的数值部分进行舍入处理. 语法:trunc(number[,decimals]) 其中,number为待做处理的数值,decimals为需要保留小数点后面的位数,即精度,默认值为0,此时将截去所有的小数部分. 数值处理: select trunc(123.45) as a,trunc(123.456,2) as b, trunc(123.45,-1) as c from dual ;…
1.首先我们来先看一个简单的例子: 有[Sales.Orders]订单表和[Sales.Customers]顾客表,表的机构如下 业务要求:筛选 来自“按时打算”国家的用户以及所下的订单数 select o.custid,COUNT(*) as '订单数' from [Sales.Orders] o inner join [Sales.Customers] c on o.custid=c.custid where c.country='按时打算' group by o.custid; 这样简单…
1.多行函数 Sum avg max min count 组函数具有滤空的作用(添加nvl屏蔽该功能) 分组group by 多行分组 分组过滤 where 和分组过滤的区别(having) 分组的增强(rollup) break on deptno skip 2; break on null; SQL> -- 计算一下每一个月要发多少工资,不含奖金 SQL> select sum(sal) from emp; SUM(SAL) ---------- SQL> select sal fr…
众所周知,静态SQL的输出结构必须也是静态的.对于经典的行转列问题,如果行数不定导致输出的列数不定,标准的答案就是使用动态SQL, 到11G里面则有XML结果的PIVOT. 但是 oracle 10G 没有 PIVOT 函数怎么办,自己写一个不久有了.上代码 直接点. CREATE OR REPLACEtype PivotImpl_shx as object( ret_type anytype, -- The return type of the table function stmt varc…