Oracle查询忽略大小写的实现方法

转自:http://database.51cto.com/art/201010/231561.htm

Oracle查询有时候要受到一些条件的制约,比如大小写。下面为您介绍了一个实现Oracle查询忽略大小写的方法,如果您对Oracle查询方面感兴趣的话,不妨一看。

数据库有4 条记录,分别是 ‘KKK‘ ‘kkk‘   ‘KkK‘ ‘kKk‘

(1)select * from t_vvip t where t.name=lower(‘KkK‘) or t.name=Upper(‘KkK‘);
     仅转换了Oracle查询的字符串, 即查询的内容要么全部小写,要么全部大写。所以只能查到2条记录

       
(2) select * from t_vvip t where lower(t.name)=‘KkK‘ 
         仅转换了字段内容为小写,但查询的字符串为大小写都有, 0条

select * from t_vvip t where upper(t.name)=‘KkK‘;   
仅转换了字段内容为大写,但Oracle查询的字符串为大小写都有, 0条

(3)select * from t_vvip t where lower(t.name)=lower(‘KkK‘);
   即转换了字段内容又转换了Oracle查询的字符串,这样最安全,但性能也是最低的。4条

时间: 2024-10-09 20:12:08

Oracle查询忽略大小写的实现方法的相关文章

sqlite查询忽略大小写,你踩坑了吗?

前言: 一般数据库查询字符串的时候都是忽略大小写的,但是sqlite查询时是区分大小写的.不过sqlite在定义表/查询的时候支持忽略大小写. 定义数据库表/查询匹配时加COLLATE NOCASE 如: create table if not exists tb_test_case (id text PRIMARY KEY, data text COLLATE NOCASE); select * from tb_test_case where data = 'a'  COLLATE NOCAS

oracle 查询当天记录 三种方法效率比较

-- 查询一表中当天生成的数据 -- 原表mobilefrends中的cdate字段上有索引,创建索引语句是:create index mobilefrends_cdate_idx on mobilefrends(cdate); --------------------------------------------------------------------------------------------------------------------- -- 方法一:用to_char()

oracle 模糊查询忽略大小写

select * from c_table t where upper(t.name) like '%F%';--将字段全转成大写 select * from c_table t where lower(t.name) like '%f%';--将字段全转成小写 select * from c_table t where t.name like upper('%f%') or t.name like lower('%F%');

Oracle查询表里的重复数据方法

select id from group by id having count(*) > 1 按照id分组并计数,某个id号那一组的数量超过1条则认为重复. 如何查询重复的数据 select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1 PS:将上面的>号改为=号就可以查询出没有重复的数据了. Oracle删除重复数据的SQL(删除所有): 删除重复数据的基本结构写法: 想要删除这些重复的数据,可以使用下面语句

Oracle查询被锁的表及进程的方法

Oracle查询可以有多种方法,下面为您介绍的是如何Oracle查询被锁的表及Oracle查询连接的进程的方法,希望对您能够有所帮助. 一.查看被锁的表 select p.spid,a.serial#, c.object_name,b.session_id,b.oracle_username,b.os_user_name from v$process p,v$session a, v$locked_object b,all_objects c where p.addr=a.paddr and a

Oracle数据库,忽略大小写Like模糊查询(SQL Server,MySql原理相同)

背景 在使用Oracle或者其它数据库时,使用like 关键字进行模糊查询是大家经常使用的功能,在纯中文环境中使用非常好用,还有一些通配符可以使用,但是在纯英文环境中,会出现大小需要精确匹配的问题,主要原因还是字符串的问题 FL like '%{0}%' and 这里like后是一个字符串,这样必然会有大小敏感的问题.比如如下的大小混编的字段 解决方案 方案1 使用Oracle系统函数对需要查询的列字符串进行小写转换(大写也行,变量相关部分都是大写转换),如下所示: select * from

oracle提高查询效率的34条方法

注:本文来源:远方的守望者  <oracle提高查询效率的34条方法> oracle提高查询效率的34条方法 1.选择最有效率的表名顺序 (只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表.如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是

indexOf()忽略大小写方法

indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置.如果没有出现,则输出-1. indexOf() 方法对大小写敏感!所以要检索字符串且忽略大小写的时候,可以先把字符串转换成全部大写,或者全部小写! toUpperCase() 大写 和 toLowerCase(); 小写

ORACLE查询并删除重复记录

查询及删除重复记录的SQL语句 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select   peopleId from   people group by   peopleId having count(peopleId) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录delete from people where