如何在Oracle数据库查询中忽略区分大小写

时间:2019-02-12 11:03:58

标签: sql oracle case-sensitive

我的字符串带有大小写字符,如何忽略大小写。

我尝试过COLLET,UPPERCASE,LOWERCASE 它不起作用。 还有其他方法可以忽略吗?

3 个答案:

答案 0 :(得分:2)

尝试一下:

WHERE UPPER(myColumn) = UPPER(myValue)

或者,当然:

WHERE LOWER(myColumn) = LOWER(myValue)

答案 1 :(得分:0)

就像罗伯特·科克(Robert Kock)提到的那样,在两侧都使用上下两边。 如果使用上限/下限后联接不匹配,则可能是由于数据中的尾部空格。 在这种情况下,您还可以使用修剪删除多余的尾随空格

upper(trim(column1)) = upper(trim(column2))

lower(trim(column1)) = lower(trim(column2))

答案 2 :(得分:0)

上部和下部方法都可以,但是如果您正在寻找更高级的方法,请尝试此方法。

create table table_test (a varchar2(100));

insert into table_test values( 'ABC');
insert into table_test values( 'abc');
insert into table_test values( 'AbC');

alter session set NLS_COMP=LINGUISTIC; 
-- how to compare string 
alter session set NLS_SORT=BINARY_AI;  --//or alter session set NLS_SORT=BINARY_CI;  
-- how to sort string  
-- the magic starts here 
    select * from table_test where a = 'ABC'

以及不同排序和比较方法的完整说明: https://docs.oracle.com/cd/B28359_01/server.111/b28298/ch5lingsort.htm#CIHJBFAD