oracle 模糊查询 模糊大小写

我的模糊查询需求是不区分大小写.查询1:select*frompowerpwherep.subSystemlike'%jz%';无数据...查询2:select*from... 我的模糊查询需求是不区分大小写. 查询1: select * from power p where p.subSystem like '%jz%' ; 无数据... 查询2: select * from power p where p.subSystem like '%JZ%' ; 有数据... 我数据表中 subSystem 字段中的字段中凡是有这个 'jz' 字母的都是大写,即'JZ_F23566' , 怎样在用户模糊查询的时候无论输入大写还是小写,都要可以查询出这些语句. 尽量不要 '双like' 的方式. 展开
 我来答
badkano
2013-03-31 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885369
团长

向TA提问 私信TA
展开全部
select * from power p where upper(p.subSystem) like '%JZ%' ;



select * from power p where lower(p.subSystem) like '%jz%' ;

upper是把所有字母转大写
lower是把所有字母转小写
匿名用户
2013-04-01
展开全部
oracle 严格区分大小写upper()这个函数就是用来写改小写为大写的我想你的程序肯定传了一个变量对吧 比如语句可能是 select * from power p where p.subSystem like '%'''+变量+'''%' ;如果是这样就用个upper()select * from power p where p.subSystem like '%upper('''+变量+''')%' ;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-01
展开全部
SQL> CREATE TABLE tab (
2 id INT,
3 val VARCHAR2(10)
4 );

表已创建。

SQL> INSERT INTO tab
2 SELECT 1, 'ABC123' FROM DUAL UNION ALL
3 SELECT 2, 'abc234' FROM DUAL UNION ALL
4 SELECT 3, 'Abc345' FROM DUAL UNION ALL
5 SELECT 4, 'aBC456' FROM DUAL UNION ALL
6 SELECT 5, 'aBc567' FROM DUAL ;

已创建5行。

Oracle 默认,大小写敏感

SQL> SELECT
2 *
3 FROM
4 tab
5 WHERE
6 val LIKE 'a%';

ID VAL
---------- ----------
2 abc234
4 aBC456
5 aBc567

默认是大小写敏感。

解决办法,使用 正则表达式的方式来 变通的处理。

SQL> SELECT
2 *
3 FROM
4 tab
5 WHERE
6 REGEXP_LIKE (val, '^a', 'i');

ID VAL
---------- ----------
1 ABC123
2 abc234
3 Abc345
4 aBC456
5 aBc567

注1:REGEXP_LIKE 的第3个参数 'i' 表示大小写敏感。
注2:对于环境变量 NLS_COMP 与 NLS_SORT的设置,会影响REGEXP_LIKE 执行的结果(假如第3个参数不填写的话)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wuhu_314
2013-04-01 · TA获得超过273个赞
知道答主
回答量:88
采纳率:0%
帮助的人:26.3万
展开全部
有两种方法可以:
1、
select * from power p where p.subSystem like '%jz%'
union all
select * from power p where p.subSystem like '%JZ%' ;
2、select * from power p where p.subSystem (like upper('%jz%') or like lower('%jz%') );
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
随o天
2013-04-01 · TA获得超过3158个赞
知道大有可为答主
回答量:1740
采纳率:71%
帮助的人:2029万
展开全部
select * from power where upper(subSystem) like '%'||upper(输入值)||'%' ;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式