当前位置: 首页 > news >正文

【Oracle11g SQL详解】常用字符串函数:`CONCAT`、`SUBSTR`、`LENGTH`、`INSTR` 等

常用字符串函数:CONCATSUBSTRLENGTHINSTR

字符串函数在 SQL 中被广泛用于处理文本数据,例如拼接字符串、提取子串、查找字符位置等。Oracle 11g 提供了强大的字符串函数,可以简化对字符串的操作。


一、CONCAT:拼接字符串

1. 功能

CONCAT 函数用于将两个字符串拼接成一个字符串。

2. 语法
CONCAT(string1, string2)
3. 示例
SELECT CONCAT('Hello', ' World') AS result
FROM dual;
-- 结果:Hello World

注意

  • 若需要拼接多个字符串,可以使用双竖线 || 操作符:
    SELECT 'First' || ' Second' || ' Third' AS result
    FROM dual;
    -- 结果:First Second Third
    

二、SUBSTR:提取子字符串

1. 功能

SUBSTR 用于从字符串中提取指定位置的子串。

2. 语法
SUBSTR(string, start_position, length)
  • string:要操作的字符串。
  • start_position:起始位置(从 1 开始,负数表示从末尾开始)。
  • length(可选):子串长度。如果省略,将提取到字符串末尾。
3. 示例
SELECT SUBSTR('Oracle SQL', 8, 3) AS result
FROM dual;
-- 结果:SQL

使用负数的起始位置

SELECT SUBSTR('Oracle SQL', -3, 3) AS result
FROM dual;
-- 结果:SQL

三、LENGTH:获取字符串长度

1. 功能

LENGTH 用于返回字符串的字符数。

2. 语法
LENGTH(string)
3. 示例
SELECT LENGTH('Oracle SQL') AS result
FROM dual;
-- 结果:10

空字符串与 NULL 的区别

  • 对于 ''(空字符串),LENGTH 返回 0
  • 对于 NULLLENGTH 返回 NULL

四、INSTR:查找字符位置

1. 功能

INSTR 用于查找指定子字符串在目标字符串中的位置。

2. 语法
INSTR(string, substring, start_position, occurrence)
  • string:要搜索的目标字符串。
  • substring:要查找的子字符串。
  • start_position(可选):开始搜索的位置,默认为 1。
  • occurrence(可选):第几次出现的位置,默认为 1。
3. 示例
SELECT INSTR('Oracle SQL', 'SQL') AS result
FROM dual;
-- 结果:8

查找第二次出现的位置

SELECT INSTR('Oracle SQL SQL', 'SQL', 1, 2) AS result
FROM dual;
-- 结果:12

五、其他常用字符串函数

1. TRIM:去除首尾空格或指定字符
SELECT TRIM('   Oracle SQL   ') AS result
FROM dual;
-- 结果:Oracle SQL
2. LPADRPAD:填充字符串
  • LPAD 在字符串左侧填充指定字符:
    SELECT LPAD('123', 5, '0') AS result
    FROM dual;
    -- 结果:00123
    
  • RPAD 在字符串右侧填充指定字符:
    SELECT RPAD('123', 5, '0') AS result
    FROM dual;
    -- 结果:12300
    
3. REPLACE:替换字符串
SELECT REPLACE('Oracle SQL', 'SQL', 'PL/SQL') AS result
FROM dual;
-- 结果:Oracle PL/SQL
4. LOWERUPPER:大小写转换
  • LOWER 将字符串转换为小写:
    SELECT LOWER('Oracle SQL') AS result
    FROM dual;
    -- 结果:oracle sql
    
  • UPPER 将字符串转换为大写:
    SELECT UPPER('Oracle SQL') AS result
    FROM dual;
    -- 结果:ORACLE SQL
    
5. INITCAP:单词首字母大写
SELECT INITCAP('oracle sql functions') AS result
FROM dual;
-- 结果:Oracle Sql Functions

六、综合实例

1. 拼接并提取子串

将员工姓名拼接成“姓·名”的格式,提取姓氏的前两个字母:

SELECT CONCAT(last_name, '.' || SUBSTR(first_name, 1, 1)) AS formatted_name,SUBSTR(last_name, 1, 2) AS surname_abbreviation
FROM employees
WHERE department_id = 10;
2. 查找特定字符串并替换

从员工记录中查找包含 “Manager” 的职位,替换为 “Leader”:

SELECT job_title,REPLACE(job_title, 'Manager', 'Leader') AS updated_title
FROM jobs
WHERE INSTR(job_title, 'Manager') > 0;

七、小结

  • CONCAT 用于拼接两个字符串,多个字符串拼接可用 ||
  • SUBSTR 提取子字符串,支持正负起始位置。
  • LENGTH 返回字符串长度,区分空字符串与 NULL。
  • INSTR 查找子字符串的位置,支持多次出现查找。
  • 其他字符串函数(如 TRIMLPADREPLACE 等)提供了丰富的文本处理能力。

通过灵活使用字符串函数,可以大大简化数据处理过程,提高 SQL 查询的可读性和效率。

http://www.lryc.cn/news/502708.html

相关文章:

  • 某养老产业公司管理诊断项目成功案例纪实
  • 自然语言处理基础及应用场景
  • 网页爬虫技术全解析:从基础到实战
  • 数据仓库-查看表和数据库的信息
  • 【JVM】JVM基础教程(四)
  • 深入了解Text2SQL开源项目(Chat2DB、SQL Chat 、Wren AI 、Vanna)
  • websocket 服务 pinia 全局配置
  • 基于Springboot企业oa管理系统【附源码】
  • Python遥感开发之地理探测器的实现
  • 【HarmonyOS】 鸿蒙保存图片或视频到相册
  • Apache Echarts和POI
  • 厦门凯酷全科技有限公司正规吗靠谱吗?
  • WireShark 下载、安装和使用
  • 2025周易算命网站搭建详细方法+源码选择php环境的配置
  • 共享购模式革新登场:重构消费生态,领航商业新未来
  • centos kafka单机离线安装kafka服务化kafka tool连接kafka
  • QT JSON文件解析
  • [小白系列]GPU-nvidia-smi指令
  • 在SQL Server中使用hash join来提高表连接的性能
  • 《Django 5 By Example》阅读笔记:p493-p520
  • 【开源】基于SpringBoot框架的网上订餐系统 (计算机毕业设计)+万字毕业论文 T018
  • 数据湖治理最佳实践
  • 基于php求职招聘系统设计
  • ensp实验-vrrp多网关配置
  • Ajax--实现检测用户名是否存在功能
  • 【代码pycharm】动手学深度学习v2-09 Softmax 回归 + 损失函数 + 图片分类数据集
  • 设计模式:24、访问者模式
  • 基于JAVA的旅游网站系统设计
  • 网络安全产品之认识防火墙
  • nginx反向代理(负载均衡)和tomcat介绍