Oracle中常用语法

一、最常用字符串函数(高频)

sql 复制代码
1. SUBSTR(字段, 起始位, 长度)    -- 截取字符串
   SUBSTR('202503', -2, 2)  → '03'

2. LENGTH(字段)                -- 长度
3. LENGTHB(字段)               -- 字节长度(中文2字节)

4. TRIM(字段)                  -- 去空格
5. NVL(字段, 0)                -- 空值替换(最常用)
6. DECODE(字段,A,B,C,D,E)      -- 等值判断
   DECODE(STATUS,'1','正常','0','禁用','未知')

7. INSTR(字符串, 字符)         -- 查找位置
   INSTR(C_KM_CODE,'_') =0 → 不含下划线

8. REPLACE(字段,旧,新)         -- 替换

二、数值运算(必用)

sql 复制代码
1. SUM(字段)     -- 求和
2. COUNT(*)      -- 计数
3. AVG()         -- 平均
4. MAX()/MIN()   -- 最大/最小
5. ROUND(数值, 位数)    -- 四舍五入
6. CEIL(数值)           -- 向上取整
7. MOD(数值, 基数)      -- 取余(分页常用)
   MOD(rownum,100) → 0-99循环

三、日期函数(超级常用)

sql 复制代码
1. SYSDATE                  -- 当前系统时间
2. TRUNC(SYSDATE)           -- 今天 00:00:00
3. 字段 + 1                  -- 加1天
4. ADD_MONTHS(日期, 月份)     -- 加月份
5. LAST_DAY(日期)            -- 当月最后一天
6. TO_CHAR(日期,'yyyy-MM-dd') -- 转字符串
7. TO_DATE('20250101','yyyyMMdd') -- 转日期

四、条件判断(写业务必用)

1. DECODE(简单判断)

sql 复制代码
DECODE(C_DAT_CLS,'CLS_HB','场外','场内')

2. CASE WHEN(复杂业务,最常用)

sql 复制代码
CASE 
   WHEN 条件1 THEN 结果1
   WHEN 条件2 THEN 结果2
   ELSE 默认值
END

五、多表连接(你天天写)

sql 复制代码
1. LEFT JOIN   -- 左连接(保留左表全部)
2. INNER JOIN  -- 内连接(只保留匹配)
3. FULL JOIN   -- 全连接(两边都保留,对账用)
4. WHERE A.ID = B.ID(+)  -- Oracle 旧版左连接

六、子查询 / WITH 子句(复杂报表)

sql 复制代码
-- 公用表表达式(推荐)
WITH TEMP AS (
   SELECT * FROM 表
)
SELECT * FROM TEMP

七、分组与过滤

sql 复制代码
GROUP BY 字段1,字段2
HAVING SUM(金额) > 0  -- 分组后过滤

八、分页 / 行号(常用)

sql 复制代码
SELECT ROWNUM, t.* FROM 表 t
WHERE ROWNUM <= 100

九、常用符号

sql 复制代码
<>    不等于
LIKE  模糊匹配 '%A%'
IN    在列表中
IS NULL / IS NOT NULL

十、你业务中最常用的组合(重点记)

sql 复制代码
1. NVL(字段, 0)             -- 空值变0
2. SUBSTR(字段,-2,2)        -- 取最后两位
3. CASE WHEN 业务判断 THEN 显示 END
4. SUM(DECODE(类型,码值,金额))  -- 行转列统计
5. LEFT JOIN 对账、关联字典

相关推荐
非黑皆白5 小时前
配置Vscode Claude Code 插件使用deepseek-v4-pro模型
ide·vscode·编辑器
puamac5 小时前
UcTabWindow 布局多tab,加载编辑器和资源管理器等自定义控件
c#·编辑器·datagridview
Java&Develop5 小时前
dbeaver 如何添加 比如 我输入 sf 回车 编辑器会出现 sql select * from 的快捷
数据库·sql·编辑器
weixin_4022784515 小时前
解决打开vscode编辑器ctrl+鼠标左键不能跳转定义问题 环境C++
vscode·编辑器·计算机外设
计算机安禾1 天前
【Linux从入门到精通】第28篇:文本处理三剑客(中)——sed 流编辑器
linux·服务器·编辑器
#君君#1 天前
ros2 下VSCode 中显示波浪线(找不到定义)原因
ide·vscode·编辑器
Codigger官方1 天前
2026年4月Vim生态最新官方消息
linux·编辑器·vim
三品吉他手会点灯2 天前
STM32 VSCode 开发-C语言程序运行后,终端中文乱码
c语言·ide·笔记·vscode·stm32·学习·编辑器
李李李勃谦2 天前
Vue3 + Electron + OpenHarmony 跨平台实战:从架构设计到 Markdown 编辑器完整实现
javascript·华为·electron·编辑器·harmonyos