3
votes

Comment ignorer le respect de la casse dans une requête de base de données Oracle

J'ai une chaîne avec des caractères majuscules et minuscules, comment ignorer la casse

J'ai essayé avec COLLET, UPPERCASE, LOWERCASE Ça ne marche pas. y a-t-il un autre moyen d'ignorer?


5 commentaires

Pouvez-vous montrer ce que vous avez essayé dans la déclaration?


Le mot clé est UPPER


Quelque chose comme WHERE UPPER (myColumn) = UPPER (myValue) . Bien sûr, utiliser LOWER est également acceptable.


@RobertKock pourquoi ne pas commenter votre réponse. De cette façon, la question recevra une réponse formelle


@DesignerAnalyst: vérifier


3 Réponses :


4
votes

Essayez ceci:

WHERE LOWER(myColumn) = LOWER(myValue)

ou, bien sûr:

WHERE UPPER(myColumn) = UPPER(myValue)


0 commentaires

0
votes

utilisez le haut ou le bas des deux côtés, comme l'a mentionné Robert Kock. si les jointures ne correspondent pas après l'utilisation de la partie supérieure / inférieure, cela peut être dû à des espaces de fin dans vos données. Dans ce cas, vous pouvez également utiliser trim pour supprimer les espaces de fin indésirables

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

ou

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


0 commentaires

2
votes

Les méthodes supérieure et inférieure sont acceptées, mais si vous cherchez quelque chose de plus sophistiqué, essayez ceci.

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'

Et une description complète des différentes méthodes de tri et de comparaison: https://docs.oracle.com/cd/ B28359_01 / server.111 / b28298 / ch5lingsort.htm # CIHJBFAD


0 commentaires