• 售前

  • 售后

热门帖子
入门百科

Oracle使用like查询时对下划线的处置处罚方法

[复制链接]
永远爱你冰塘 显示全部楼层 发表于 2021-8-14 15:24:07 |阅读模式 打印 上一主题 下一主题
如:查询ZJ_STANDARD_ITEM表的name1字段包罗"_("的数据
  1. --以下的查询语句执行会发现所查询的数据并不是我们想要数据
  2. select * from ZJ_STANDARD_ITEM t where t.name1 like '%_(%';
复制代码
缘故原由分析

下划线“_”在oracle中不是单纯的表现下划线的意思,而是表现匹配单一任何字符! 如以上查询语句就表现"("左边只要有恣意字符都会被查询到
【解决办法】

利用 escape() 函数
escape关键字常常用于使某些特殊字符,如通配符:'%','_‘转义为它们原来的字符的意义,被界说的转义字符通常利用'',但是也可以利用其他的符号。
例如:上面的条件语句可以写成where t.name1 like '%_(%'escape ‘';,这个“\”可以改为其他的字符
  1. --使用escape函数将"_"转为下划线的含义
  2. select t.name1 from ZJ_STANDARD_ITEM t where t.name1 like '%\_(%'escape '\';
复制代码
知识点扩展:Oracle中LIKE含糊查询的利用
Like 含糊查询
占位符
% 替代一个或多个字符
_ 仅替代一个字符
[charlist] 字符列中的任何单一字符
[^charlist] 大概 [!charlist] 不在字符列中的任何单一字符
(1)查询 用户名以‘S'开头的员工信息
  1.   Select * from emp where ename like 'S%'
复制代码
(2)查询 用户名以‘S'末端的员工信息
  1.  Select * from emp where ename like '%S'
复制代码
(3)查询用户名第二个字母是‘A'的员工信息
  1.   select * from emp where ename like '_A%'
复制代码
(4)查询用户名第三个字母是‘A'的员工信息
  1.   select * from emp where ename like '__A%'
复制代码
(5)查询用户名中包罗 ‘A' 的员工信息
  1.   select * from emp where ename like '%A%'
复制代码
(6)查询用户名中不包罗 ‘A' 的员工信息
  1.   select * from emp where ename not like '%A%'
复制代码
(7)从 "Persons" 表中选取居住的城市以 "A" 或 "L" 或 "N" 开头的人:
  1. SELECT * FROM Persons WHERE City LIKE '[ALN]%'
复制代码
(8)从 "Persons" 表中选取居住的城市不以 "A" 或 "L" 或 "N" 开头的人:
  1. SELECT * FROM Persons WHERE City LIKE '[!ALN]%'
复制代码
到此这篇关于Oracle利用like查询时对下划线的处理的文章就介绍到这了,更多相干Oracle like查询下划线处理内容请搜刮草根技术分享从前的文章或继续欣赏下面的相干文章盼望大家以后多多支持草根技术分享!

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作