首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Oracle实现like多个查询

客户给定被叫号码如图所示: 查询出来结果如下图所示(本批次结果不是上图导入结果查询,为了格式说明,因此导入两张结果不相关图片): 由于客户给被叫号码很不规范,查询时候比较麻烦。...,settle_carrier,file_name from t_phonebill_201702 a where a.org_callee_num like '%13800100186%' 但是这样号码有好多个...,有时候有一百多个,以上sql只能查询一个号码通话记录 一开始我想用游标实现,写一个游标,把被叫号码放入游标中,然后写一个循环,每次都依次查询一下, 但后来发现t_phonebill_201702数据量太大...后来查阅资料,多次尝试下写下这个sql,总算是实现了查询,实验论证效率也还不错。...'%||c.org_callee_num||%') ; 如果t_phonebill_201702表数据量不大,可以考虑使用简版,简版更易于了解,也能更清楚明白like多个值是如何实现,但使用exists

2.7K10
您找到你想要的搜索结果了吗?
是的
没有找到

SQL 使用like '%ABC' like '%ABC%'

一般情况下,sql中使用col_name like 'ABC%‘情况才能使用到col_name字段上索引。那么如果是col_name like '%ABC%'情况,能否使用索引呢?...改写后SQL走了索引。 二、col_name like '%ABC%'时优化方法 ? 一般认为这种情况是不能使用索引,但还是有一些优化方法可以使用。...reverse('%TAB_COL'); 情况3、这种情况需要like字段上存在普通索引,主要在SQL写法上做改进。...原来SQL是这样写: Select object_id,object_type,object_name from t1 where object_name like '%ABC%‘; 改写后SQL...改写后SQL执行计划,根据索引再回表代价要看符合条件记录数多少:如果in子查询返回记录数很少,那么优化效果就相当于效率提高了N倍;如果in子查询返回记录数较多,两种SQL性能区别就不是很明显了

2K80

从根上理解SQLlike查询%在前为什么不走索引?

我再次阐述一下,用索引走索引不是一个意思! 其实每天都有人私信我,如果遇到一些好问题,我会拿来单独写文章。比如,昨天就有人问我,like 查询 % 在前为什么不走索引?...其实结果对我来说,并不重要,重要是过程。设计过程或者实现过程,这才是我最关心。所以,今天我就从根上给你说一说为什么 like 查询 % 在前为什么不走索引? 例如,看这个例子: ?...这个问题,其实是 B+Tree 有些关系,索引树从左到右都是有顺序。对于索引中关键字进行对比时候,一定是从左往右以此对比,且不可跳过。 为什么是最左匹配原则?这个其实很好理解。...所以要从左边开始,并且是不能跳过SQL 索引也是这样。 然后,我们再来看标题中问题。% 在前,就代表,我前面的内容不确定。不确定,我们怎么比较?...like %xttblog 这个怪物,因为 % 表示全匹配,所以 MySQL 就放弃索引了,进行全表扫描。 后面,我再给你们讲讲,为什么说索引离散型越高越好!

5K20

T-SQL基础(一)之简单查询

如:LIKE '%x' 运算符 SQL运算符与高级编程语言(C#,JAVA)类似。当多个运算符出现在同一表达式中时,SQL Server会按照运算符优先级进行计算。...BY子句会将多个NULL值视为相等 标准SQLUNIQUE约束认为NULL是为彼此不同 T-SQLUNIQUE约束认为多个NULL是相等 COUNT(*)特殊性 若列名为tag例中存在...如,WHERE子句中多个表达式计算并没有确定顺序。 CASE...WHEN... CASE表达式是标量表达式,返回一个符合条件值。注意,CASE是表达式,不是语句,与COUNT类似。...CASE表达式有两种使用方式: CASE后面带有列名 这种情况下,WHEN句中只能使用标量或返回标量表达式,这种形式称为简单格式。...) SQL Server中锁与事务隔离级别 数据库两大神器【索引锁】 SQL SERVER开窗函数

4.1K20

Oracle查询优化-01单表查询

概述 1 查询表中所有的行与列 2 从表中检索部分行 3 查找空值 4 将空值转换为实际值 5 查找满足多个条件行 6 从表中检索部分列 7 为列取有意义名称 8 在 WHERE 子句中引用取别名列...9 拼接列 使用字符串连接符 用SQL生成SQL 10 在 SELECT 语句中使用条件逻辑 case when 11 限制返回行数 12 从表中随机返回 n 条记录 13 模糊查询 查出vname...(NVL(NVL(NVL(C1,C2),C3) ---------------------------------------- 1 3 SQL> ---- 1.5 查找满足多个条件行 对于简单查询...from all_tables ; ---- 1.10 在 SELECT 语句中使用条件逻辑 case when SQL> select ename, job, case...ABCDEF , 因为在like句中有个两个通配符 % 代替一个或者多个字符 _ 代替一个字符 在这里“_”被当成通配符了,那怎么办呢?

1.1K10

5. MySQL编程基础

如果局部变量嵌⼊到SQL句中,由于局部变量名前没有“@”符号,这就要求局部变量名不能与表字段名同名,否则将出现⽆法预期结果。...函数必须指定返回值数据类型,且须与return语句中返回值数据类型相近(⻓度可以不同)。 函数选项: contains sql:表示函数体中不包含读或写数据语句(例如set命令等)。...no sql:表示函数体 中不包含SQL语句。 reads sql data:表示函数体中包含select查询语句,但不包含更新语句。 modifies sql data:表示函数体包含更新语句。...例如下⾯函数实现功能是为查询结果集添加⾏号: delimiter $$ create function row_no_fn() returns int no sql begin set @row_no...⼦实现根据学⽣学号id查询学⽣name delimiter $$ create function get_name_fn(new_id int) returns char(20) reads sql

2.3K10

SQL基础查询方法

Select查询 4.1 查询基础知识 查询是对存储在 SQL Server 中数据一种请求。...此列表指定结果集有三列,并且每一列都具有 Product 表中相关列名称、数据类型大小。因为 FROM 子句仅指定了一个基表,所以 SELECT 语句中所有列名都引用该表中列。...此列表指定结果集有三列,并且每一列都具有Product表中相关列名称、数据类型大小。因为FROM子句仅指定了一个基表,所以SELECT语句中所有列名都引用该表中列。...本地 SQL Server 实例中视图。SQL Server 在内部将一个视图引用按照组成该视图基表解析为多个引用。 链接表。它们是 OLE DB 数据源中表,称之为“分布式查询”。...Transact-SQL 具有扩展功能,支持在 FROM 子句中指定除表或视图之外其他对象。这些对象返回结果集,也就是 OLE DB 术语中所说行集,该结果集构成了虚拟表。

4.2K10

学习SQL【8】-谓词CASE表达式

谓词主要有以下几种: LIKE BETWEEN IS NULL、IS NOT NULL IN EXISTS LIKE谓词—字符串部分一致查询 截止目前,我们使用字符串作为查询条件例子使用都是=。...abcddd (1 行记录) 此外,我们还可以使用_(下划线)来代替%,与%不同是,它代表“任意一个字符”,下面我们就来尝试一下: --使用LIKE_(下划线)进行后方一致查询 SELECT *...使用子查询作为IN谓词参数 IN谓词查询 IN谓词(NOT IN谓词)具有其他谓词所没有的用法,那就是可以使用子查询来作为其参数。子查询在之前已经学过,就是SQL内部生成表。...ELSE END CASE表达式会从最初WHEN句中“ ”进行求值运算。...所谓求值,就是要调查该表达式真值是什么,如果结果为真(TRUE),那么就返回THEN子句中表达式,CASE表达式执行到此为止。如果结果不为真,那么就跳转到下一条WHEN子句求值之中。

2.3K60

SQL 通配符及其使用

Sql Server中通配符使用 通配符_ "_"号表示任意单个字符,该符号只能匹配一个字符."_"可以放在查询条件任意位置,且只能代表一个字符.一个汉字只使用一个"_"表示....通配符% "%"符号是字符匹配符,能匹配0个或更多字符任意长度字符串.在SQL句中可以在查询条件任意位置放置一个%来代表一个任意长度字符串.在查询条件时也可以放置两个%进行查询,但在查询条件中最好不要连续出现两个...ESCAPE子句模式匹配 可搜索包含一个或多个特殊通配符字符串。例如,customers 数据库中 discounts 表可能存储含百分号 (%) 折扣值。...如果不指定 ESCAPE 转义符,SQL Server 将返回所有含字符串 30 行。...FROM titles Where notes LIKE '50%% off when 100 or more copies are purchased'    ESCAPE '%' escape主要用途

2.9K40

关于 MyBatis 我总结了 10 种通用写法

如果传入参数是多个时候,我们就需要把它们封装成一个Map了,当然单参数也可以封装成map,实际上如果你在传入参数时候,在MyBatis里面也是会把它封装成一个Map,mapkey就是参数名,所以这个时候...当 choose 中所有 when 条件都不满则时,则执行 otherwise 中sql。...choose会从上到下选择一个when标签test为truesql执行。安全考虑,我们使用where将choose包起来,放置关键字多于错误。 <!...语句中,我们以查询为例。...当在update语句中使用if标签时,如果前面的if没有执行,则或导致逗号多余错误。使用set标签可以将动态配置SET 关键字,剔除追加到条件末尾任何不相关逗号。

1.3K10

资深数据专家SQL效率优化技巧 ⛵

但即使是同一个需求,不同人写出 SQL 效率上也会有很大差别,而我们在数据岗位面试时候,也会考察相关技能思考,在本篇文章中,ShowMeAI将给大家梳理 SQL 中可以用于优化效率提速核心要求...图片关于 SQL 基础技能知识,欢迎大家查阅ShowMeAI制作速查表: 编程语言速查表 | SQL 速查表 1)使用正则regexp_like代替LIKE如下例所示,当我们要进行模糊匹配时候(尤其是匹配项很多时候...)使用regexp_extract代替 Case-when Like类似的,使用regexp_extract代替Case-when Like可以提高效率。...如下例中,我们对ab表进行连接,条件是b表「年」「月」「日」拼接后a表日期一致,那粗糙写法优化写法分别如下: 低效代码SELECT *FROM table1 aJOIN table2 bON...sub_category, itemid sum(price)FROM table1GROUP BY itemid, sub_category, main_category 7)避免 WHERE 子句中查询当我们要查询语句

895173
领券