Number是需要进行四舍五入的数字;Num_digits为指定的位数,按此位数进行四舍五入.如果 num_digits 大于 0,则四舍五入到指定的小数位,如果 num_digits 等于 0,则四舍五入到最接近的整数,如果 num_digits 小于 0,则在小数点左侧进行四舍五入。
-日期处理
TRUNC(date,[fmt])
date 为必要参数,是输入的一个date日期值
fmt 参数可忽略,是日期格式,缺省时表示指定日期的0点。
-数值处理
TRUNC(number,[decimals])
number 为必要参数,是输入的一个number数值
decimals 参数可忽略,是要截取的位数,缺省时表示截掉小数点后边的值。
CASE WHEN 条件1 THEN... WHEN 条件2 THEN... WHEN 条件3 THEN... ELSE...END as a
-一种分析函数
例:查询每个部门工资最高的雇员信息
deptno --部门
select * from (select ename, deptno, sal, Row_Number() over(partition by deptno order by sal desc)MAXCAR from emp) where MAXCAR = 1
解释:over 表示行号从头到尾添加上,partition by 表示以什么为分隔,一起使用就是以部门号为分隔,给各部门的员工后加上行号,然后根据行号筛选出需要的数据
行转列
select * from demo pivot(count(DISTINCT so_no) for order_level in (‘00’ so_count_00, ‘10’ so_count_10))
select * from demo pivot (count(pa_id) for zone_code in (‘H01’ PA_H01, ‘H02’ PA_H02, ‘H03’ PA_H03, ‘H04’ PA_H04, ‘H05’ PA_H05, ‘H06’ PA_H06))
全连接 [https://blog.csdn.net/adminZSQ/article/details/106383963?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2defaultCTRLISTdefault-1.no_search_link&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2defaultCTRLISTdefault-1.no_search_link&utm_relevant_index=1]
union指令的目的是将两个sql语句的查询结果合并起来,但是要注意使用union连接的两个sql 语句的字段类型 、 字段个数 、 字段名要求完全匹 UNION会去重;而union all 是直接将两个sql语句的查询结果合并返回 从效率上来讲union all 要比union快得多
ORDER BY DECODE (H.SO_NO, ‘SO202111180015’, 0), H.CREATE_TIME DESC --将H.SO_NO='SO202111180015’的数据,排在第一行
SELECT * FROM ( SELECT s.*, ROWNUM AS RN FROM ( sql ) s WHERE ROWNUM <= 1 * 10 ) WHERE RN > (1 - 1) * 10
根据sql查询到的结果行,每一行复制对应needScanCount次并显示
with t as(
sql
)
select * from t connect by rownum <= t.needScanCount;
– 查找一下id为001001的子孙后代
select * from text_cen start with id = ‘001001’ connect by prior id = parentid
0-9 ↩︎