Come scrivere una query in Oracle ignorando il caso delle stringhe confrontate? Ad esempio "angelo", "Angelo", "ANGEL", "angelo", "AngEl" sarebbero tutti uguali se confrontati.Come confrontare le stringhe in caso di ignoranza sql?
risposta
Se si sta corrispondendo l'intero valore del campo utilizzare
WHERE UPPER(fieldName) = 'ANGEL'
EDIT: Dal tuo commento si desidera utilizzare:
SELECT
RPAD(a.name, 10,'=') "Nombre del Cliente"
, RPAD(b.name, 12,'*') "Nombre del Consumidor"
FROM
s_customer a,
s_region b
WHERE
a.region_id = b.id
AND UPPER(a.name) LIKE '%SPORT%'
vuoi da jaj, se la risposta di Gary ha risolto il tuo problema, dovresti accettare è come la risposta. :-) –
Se la tabella del cliente è grande, varrebbe la pena considerare l'aggiunta di un indice basato sulla funzione in alto (nome) per questo tipo di query. –
È possibile utilizzare:
select * from your_table where upper(your_column) like '%ANGEL%'
Altrimenti, è possibile utilizzare:
select * from your_table where upper(your_column) = 'ANGEL'
Quale sarà più efficiente se si sta cercando una corrispondenza senza caratteri aggiuntivi prima o dopo il campo your_column come suggerito da Gary Ray nei suoi commenti.
concordato. Like è più conciso. – Daniel
@ PSC - La tua clausola where corrisponderà solo se una variazione di 'angel' senza caratteri aggiuntivi prima o dopo è nel campo. Se questo è il caso, allora '=' è più efficiente di 'LIKE'. Vedi il commento OP. –
è possibile utilizzare la parola chiave UPPER:
SELECT *
FROM Customers
WHERE UPPER(LastName) = UPPER('AnGel')
Non ricordo la sintassi esatta, ma è possibile impostare la colonna della tabella di essere case insensitive. Ma fai attenzione perché non sarai più in grado di eguagliare il caso in base al caso e se vuoi che "cool" non corrisponda a "CoOl" non sarà più possibile.
Non penso sia possibile impostare una colonna in maiuscolo tra le minuscole in Oracle. – tuinstoel
Potrei sbagliarmi. So che è un'opzione in mySql –
Maggiori dettagli sulla risposta di Mr Dredel e sul commento di tuinstoel. I dati nella colonna verranno memorizzati nel caso specifico, ma è possibile modificare la sensibilità della maiuscole e della sessione per la corrispondenza.
È possibile modificare la sessione o il database per utilizzare la ricerca linguistica o senza distinzione tra maiuscole e minuscole. È anche possibile impostare indici per utilizzare determinati ordinamenti.
esempio
ALTER SESSION SET NLS_SORT=BINARY_CI;
Una volta che si inizia a entrare in lingue diverse dall'inglese, con accenti e così via, non c'è supporto aggiuntivo per l'accento-insensitive. Alcune funzionalità variano a seconda della versione, quindi consulta il documento Globablization per la tua versione specifica di Oracle. L'ultima (11g) è here
prima di confrontare le due o più stringhe prima eseguire i seguenti comandi
alter session set NLS_COMP=LINGUISTIC;
alter session set NLS_SORT=BINARY_CI;
dopo quei due istruzioni eseguite allora si può confrontare le corde e ci sarà caso insensitive.for esempio avevi due stringhe s1 = 'Apple' e s2 = 'apple', se vuoi confrontare le due stringhe prima di eseguire le istruzioni precedenti allora quelle due stringhe saranno considerate come due stringhe diverse ma quando confronti le stringhe dopo l'esecuzione di le due istruzioni alter che poi quelle due stringhe s1 e s2 saranno trattate come la stessa stringa
ragioni per usare queste due affermazioni
Dobbiamo impostare NLS_COMP = linguistica e NLS_SORT = BINARY_CI al fine di utilizzare 10gR2 caso insensibilità. Poiché questi sono modificabili di sessione, non è così semplice come impostarli nei parametri di inizializzazione.Possiamo impostarli nei parametri di inizializzazione, ma influenzano solo il server e non il lato client.
- 1. confrontare le stringhe come numeri in SQLite3
- 2. Come confrontare le stringhe Unicode in Javascript?
- 3. Come confrontare le stringhe in Linq Query
- 4. confrontare le stringhe nei modelli
- 5. Come confrontare le stringhe con Xpath 1.0?
- 6. Come confrontare se due stringhe contengono le stesse parole in T-SQL per SQL Server 2008?
- 7. Utilizzando indice superiore calcolato in Firebird per confrontare le stringhe di caso insensitive
- 8. Come confrontare le stringhe con case insensitive e l'accento insensibile
- 9. Come confrontare un NSNumber in un caso
- 10. Play 2: come confrontare le stringhe in scala template?
- 11. Come confrontare le estremità delle stringhe in C?
- 12. LINQ to XML: ignoranza del caso degli attributi
- 13. Come confrontare le stringhe in mybatis 3 con if statement - dynamic sql
- 14. Come confrontare due stringhe in scala?
- 15. Come confrontare 2 stringhe alfabeticamente
- 16. Test dell'unità di ignoranza per le analisi di utilizzo
- 17. Come confrontare la stringa in PL/SQL?
- 18. Come confrontare stringhe crittografate con semi casuali?
- 19. Come confrontare due stringhe usando un se in una procedura memorizzata in SQL Server 2008?
- 20. .NET Come confrontare due stringhe che rappresentano i nomi dei file ignorando caso correttamente
- 21. C'è un modo per confrontare la data "stringhe" in C# senza convertire le stringhe?
- 22. confrontare due stringhe in PHP e mostrano differenze di carattere
- 23. Come confrontare/confrontare i valori in due gruppi di risultati in SQL Server 2008?
- 24. Regex per confrontare le stringhe con le variazioni di Umlaut e non Umlaut
- 25. Come cambiare caso di stringhe UTF-8 latine in C++?
- 26. Utilizzo del caso per far corrispondere le stringhe nel server sql?
- 27. Confronta le stringhe di versione in groove
- 28. stringa Rubino confrontare a prescindere dal caso stringa
- 29. Come confrontare due stringhe in java senza considerare gli spazi?
- 30. Ordinare le stringhe in Prolog
selezionare RPAD (a.name, 10, '=') "Nombre del Cliente", RPAD (b.name, 12, '*') "Nombre del Consumidor" da s_customer a, b s_region in cui un .region_id = b.id AND a.name LIKE '% sport%' Lo sport è la parola che ho bisogno di –