标签:四舍五入 函数 -- union PA sql oracle select
标题 oracle常用函数及sql(持续更新中~)
- SUM --求和
- GROUP BY --分组
- DISTINCT --去重
- NVL(target, value) --判断target是否是null,是的话使用value代替
- ROUND(number,num_digits)
Number是需要进行四舍五入的数字;Num_digits为指定的位数,按此位数进行四舍五入.如果 num_digits 大于 0,则四舍五入到指定的小数位,如果 num_digits 等于 0,则四舍五入到最接近的整数,如果 num_digits 小于 0,则在小数点左侧进行四舍五入。
- trunc()
-日期处理
TRUNC(date,[fmt])
date 为必要参数,是输入的一个date日期值
fmt 参数可忽略,是日期格式,缺省时表示指定日期的0点。
-数值处理
TRUNC(number,[decimals])
number 为必要参数,是输入的一个number数值
decimals 参数可忽略,是要截取的位数,缺省时表示截掉小数点后边的值。
- to_date(‘2021-01-01 00:00:01’, ‘yyyy-mm-dd hh24:mi:ss’)
- to_char(sysdate,‘yyyy-MM-dd HH:mm:ss’)
- last_day(sysdate) --获取当前日期的最后一天
- add_months(sysdate, --6) --6个月之前的时间
- ceil(n) --取大于等于数值n的最小整数
- floor(n) --取小于等于数值n的最大整数
- substr --字符截取
- regexp_like(target, ‘1+[0-9]$’) --正则匹配
CASE WHEN 条件1 THEN... WHEN 条件2 THEN... WHEN 条件3 THEN... ELSE...END as a
- COALESCE(val1,val2,val3,val4…) --遇到非null值即停止并返回该值
- OVER(PARTITION BY)
-一种分析函数
例:查询每个部门工资最高的雇员信息
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 表示以什么为分隔,一起使用就是以部门号为分隔,给各部门的员工后加上行号,然后根据行号筛选出需要的数据
- pivot
行转列
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))
- full join…on…
全连接 [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]
- || --拼接符
- concat(target, '’) --拼接号,只能连接两个字符
- UNION\ UNION ALL
union指令的目的是将两个sql语句的查询结果合并起来,但是要注意使用union连接的两个sql 语句的字段类型 、 字段个数 、 字段名要求完全匹 UNION会去重;而union all 是直接将两个sql语句的查询结果合并返回 从效率上来讲union all 要比union快得多
- DECODE
ORDER BY DECODE (H.SO_NO, ‘SO202111180015’, 0), H.CREATE_TIME DESC --将H.SO_NO='SO202111180015’的数据,排在第一行
- oracle分页
SELECT
*
FROM
(
SELECT
s.*, ROWNUM AS RN
FROM
(
sql
) s
WHERE
ROWNUM <= 1 * 10
)
WHERE
RN > (1 - 1) * 10
- connect by
根据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 ↩︎
标签:四舍五入,函数,--,union,PA,sql,oracle,select 来源: https://blog.csdn.net/weixin_40047026/article/details/122467244
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。