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

SQL 中 INSTR 函数简介及 截取地址应用

一、基本语法与参数解析

​​语法​​:

INSTR(string1, string2 [, start_position [, nth_occurrence]])

  • ​​参数说明​​:
    a.​​string1​​:源字符串(必选)。
    b.​​string2​​:需查找的子字符串(必选)。
    c.​​start_position​​(可选):搜索起始位置,默认为1(从左到右);若为负数,则从右向左计算位置。
    d.​​nth_occurrence​​(可选):查找第几次出现,默认为1(首次出现),若为负数,如 -1,则表示从右向左查询。
  • 示例​​:
-- 查找子字符串首次出现的位置
SELECT INSTR('helloworld', 'l') FROM DUAL; -- 返回3 
-- 从第3位开始查找子字符串
SELECT INSTR('Oracle Database', 'a', 3) FROM DUAL; -- 返回5 
-- 查找第2次出现的子字符串
SELECT INSTR('hello world', 'o', 1, 2) FROM DUAL; -- 返回5 

二、核心应用场景

1.字符串分割​​

  • ​​提取分隔符间的内容​​:结合SUBSTR函数
    (1)截取居住地址到第四级(镇/乡/街道)
select NVL(CASEWHEN INSTR(t.address, '镇', -1) > 0 THENSUBSTR(t.address, 1, INSTR(t.address, '镇', -1))WHEN INSTR(t.address, '乡', -1) > 0 THENSUBSTR(t.address, 1, INSTR(t.address, '乡', -1))WHEN INSTR(t.address, '街道', -1) > 0 THENSUBSTR(t.address, 1, INSTR(t.address, '街道', -1)+1)ELSE t.addressEND,'未知') AS  "address"

备注:从右向左搜索​​:INSTR(residence_address, ‘镇’, -1) 从字符串末尾向前查找最后一个“镇”的位置。

  • 测试用例​​
输入示例输出结果
广东省深圳市宝安区福永街道广东省深圳市宝安区福永街道
湖南省长沙市长沙县黄花镇湖南省长沙市长沙县黄花镇
北京市海淀区中关村大街北京市海淀区中关村大街
上海市浦东新区张江镇科技园上海市浦东新区张江镇

2. 动态条件筛选​​

  • ​​模糊查询​​:替代LIKE实现动态条件。
SELECT * FROM employees 
WHERE INSTR(email, 'example.com') > 0;
http://www.xdnf.cn/news/424873.html

相关文章:

  • 【python】—conda新建python3.11的环境报错
  • 第五十七篇 Java接口设计之道:从咖啡机到智能家居的编程哲学
  • 本地部署ollama及deepseek(linux版)
  • ssl 中 key 和pem 和crt是什么关系
  • 配置 Spark 以 YARN 模式
  • 笔试模拟 day9
  • 深入理解Java编写泛型的方法!
  • 杰理-701-手表sdk无法电脑连接经典蓝牙
  • 微信小程序的开发及问题解决
  • 游戏资源传输服务器
  • 第三章 初始化配置(一)
  • GitHub 趋势日报 (2025年05月12日)
  • 电能质量扰动信号信号通过hilbert变换得到瞬时频率
  • 2025.05.11拼多多机考真题算法岗-第一题
  • MCU开发学习记录14* - 8080学习与实践(HAL库) - 控制LCD屏幕显示中英文、图片 - STM32CubeMX
  • 【Axure视频教程】中继器表格间批量控制和传值
  • 艺考之神余嘉诚话剧舞台首秀《屈原辞》 倾情演绎楚辞风骨
  • [Java][Leetcode middle] 45. 跳跃游戏 II
  • 音频转文字-在线工具包及使用记录
  • 提示词设计模板(基于最佳实践)
  • Datawhale PyPOTS时间序列5月第1次笔记
  • 2025 3D工业相机选型及推荐
  • Elecron 相关介绍以及常见的面试问题
  • 【MapReduce入门】深度解析MapReduce:定义、核心特点、优缺点及适用场景
  • 1950-2024年中国区域的积温数据(大于10°)
  • 2025最新出版 Microsoft Project由入门到精通(七)
  • Unity 2D 行走动画示例工程手动构建教程-AI变成配额前端UI-完美游戏开发流程
  • 5月13日day24日打卡
  • 完成springBoot+vue项目时学习到的知识点
  • 嵌入式STM32学习——外部中断EXTI与NVIC的基础练习⭐