oracle常用函数及sql(持续更新中~)
2022/1/13 19:07:32
本文主要是介绍oracle常用函数及sql(持续更新中~),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
标题 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 ↩︎
这篇关于oracle常用函数及sql(持续更新中~)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-11国产医疗级心电ECG采集处理模块
- 2025-01-10Rakuten 乐天积分系统从 Cassandra 到 TiDB 的选型与实战
- 2025-01-09CMS内容管理系统是什么?如何选择适合你的平台?
- 2025-01-08CCPM如何缩短项目周期并降低风险?
- 2025-01-08Omnivore 替代品 Readeck 安装与使用教程
- 2025-01-07Cursor 收费太贵?3分钟教你接入超低价 DeepSeek-V3,代码质量逼近 Claude 3.5
- 2025-01-06PingCAP 连续两年入选 Gartner 云数据库管理系统魔力象限“荣誉提及”
- 2025-01-05Easysearch 可搜索快照功能,看这篇就够了
- 2025-01-04BOT+EPC模式在基础设施项目中的应用与优势
- 2025-01-03用LangChain构建会检索和搜索的智能聊天机器人指南