Как игнорировать чувствительность к регистру в запросе к базе данных Oracle - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть строка с символами верхнего и нижнего регистра, как я могу игнорировать чувствительность к регистру.

Я пробовал с COLLET, UPPERCASE, LOWERCASE Это не работает.Есть ли другой способ игнорировать?

Ответы [ 3 ]

0 голосов
/ 12 февраля 2019

используйте верх или низ с обеих сторон, как упоминал Роберт Кок.если соединения не совпадают после использования верхнего / нижнего значений, это может быть связано с наличием пробелов в ваших данных.В этом случае вы также можете использовать обрезку для удаления нежелательных концевых пробелов

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

или

lower(trim(column1)) = lower(trim(column2))
0 голосов
/ 12 февраля 2019

Верхний и нижний метод в порядке, но если вы ищете что-то более сложное, попробуйте это.

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

0 голосов
/ 12 февраля 2019

Попробуйте:

WHERE UPPER(myColumn) = UPPER(myValue)

или, конечно:

WHERE LOWER(myColumn) = LOWER(myValue)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...