¿Cómo escribo una consulta en Oracle ignorando el caso de las cadenas que se comparan? Por ejemplo, "ángel", "ángel", "ángel", "ángel", "ángel" serían todos iguales en comparación.Cómo comparar cadenas en sql ignorando el caso?
Respuesta
Si igualando el valor completo del campo utilizar
WHERE UPPER(fieldName) = 'ANGEL'
EDIT: Desde su comentario que desea utilizar:
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%'
quiero por jaj, si la respuesta de Gary resolvió tu problema, debes aceptar como la respuesta. :-) –
Si la tabla de clientes es grande, valdría la pena considerar agregar un índice basado en funciones en la parte superior (nombre) para este tipo de consulta. –
Se puede utilizar:
select * from your_table where upper(your_column) like '%ANGEL%'
De lo contrario, puede usar:
select * from your_table where upper(your_column) = 'ANGEL'
Que será más eficiente si está buscando una coincidencia sin caracteres adicionales antes o después de campo your_column como Gary Ray sugirió en sus comentarios.
De acuerdo. Me gusta es muy conciso. – Daniel
@ PSC: su cláusula Where solo coincidirá si hay una variación de 'angel' sin caracteres adicionales antes o después de que esté en el campo. Si ese es el caso, entonces '=' es más eficiente que 'LIKE'. Ver el comentario OP. –
podría utilizar el UPPER palabra clave:
SELECT *
FROM Customers
WHERE UPPER(LastName) = UPPER('AnGel')
No recuerdo la sintaxis exacta, pero es posible configurar la columna de la mesa para ser sensible a mayúsculas. Pero ten cuidado porque entonces no podrás emparejar según el caso y si QUIERES que 'cool' no coincida con 'CoOl' ya no será posible.
No creo que sea posible configurar una columna para que no distinga entre mayúsculas y minúsculas en Oracle. – tuinstoel
Puedo estar equivocado. Sé que es una opción en mySql –
Más detalles sobre la respuesta del Sr. Dredel y el comentario de tuinstoel. Los datos en la columna se almacenarán en su caso específico, pero puede cambiar la sensibilidad de mayúsculas y minúsculas de su sesión para la coincidencia.
Puede cambiar la sesión o la base de datos para utilizar búsquedas lingüísticas o no sensibles a mayúsculas y minúsculas. También puede configurar índices para usar órdenes de clasificación particulares.
por ejemplo
ALTER SESSION SET NLS_SORT=BINARY_CI;
Una vez que comienza a recibir a los idiomas distintos del inglés, con acentos y así sucesivamente, hay un apoyo adicional para el acento y minúsculas. Algunas de las capacidades varían según la versión, así que consulte el documento Globablization para su versión particular de Oracle. La última (11g) es here
antes de comparar las dos o más cadenas primera ejecutar los siguientes comandos
alter session set NLS_COMP=LINGUISTIC;
alter session set NLS_SORT=BINARY_CI;
después de esas dos sentencias ejecutadas entonces es posible comparar las cadenas y no habrá caso insensitive.for ejemplo tenía dos cadenas s1 = 'Apple' y s2 = 'apple', si desea comparar las dos cadenas antes de ejecutar las declaraciones anteriores, esas dos cadenas se tratarán como dos cadenas diferentes, pero cuando compare las cadenas después de la ejecución de las dos declaraciones alternan entonces esas dos cadenas s1 y s2 se tratarán como la misma cadena
razones para el uso de estas dos afirmaciones
Necesitamos establecer NLS_COMP = lingüística y NLS_SORT = BINARY_CI con el fin de utilizar 10gR2 mayúsculas y minúsculas. Dado que son modificables por sesión, no es tan simple como configurarlos en los parámetros de inicialización.Podemos configurarlos en los parámetros de inicialización, pero solo afectan al servidor y no al lado del cliente.
- 1. .NET Cómo comparar dos cadenas que representan los nombres de fichero caso ignorando correctamente
- 2. caso HtmlAgilityPack XPath ignorando
- 3. Comparar fechas en T-SQL, ignorando la parte de tiempo
- 4. Comparar diccionarios ignorando claves específicas
- 5. Cómo comparar un NSNumber en un caso
- 6. Cómo ordenar en SQL, ignorando artículos ('el', '', '', etc.)
- 7. pitón: comparar dos cadenas
- 8. Cómo comparar 2 cadenas alfabéticamente
- 9. Cómo comparar puntero a cadenas en C
- 10. Cómo comparar cadenas Unicode en Javascript?
- 11. ¿Cómo comparar dos cadenas usando a si en un procedimiento almacenado en el servidor sql 2008?
- 12. Servidor SQL ignora el caso en una expresión where
- 13. ¿Cómo comparar si dos cadenas contienen las mismas palabras en T-SQL para SQL Server 2008?
- 14. comparar cadenas múltiples en Perl
- 15. Cómo comparar el carácter ignorando mayúsculas y minúsculas en los tipos primitivos
- 16. Comparar versiones como cadenas
- 17. cómo comparar/validar el esquema sql
- 18. Búsqueda de cadenas de Java ignorando acentos
- 19. SQL Case Sensitive String Comparar
- 20. ¿Cómo comparar cadenas encriptadas con semillas aleatorias?
- 21. ¿Cómo comparar cadenas con Xpath 1.0?
- 22. ¿Cómo puedo comparar archivos en un caso de prueba JUnit?
- 23. Comparar cadenas por envoltorios SSE4
- 24. En Java, ¿cómo puedo verificar si una cadena contiene una subcadena (ignorando el caso)?
- 25. Ignorando un parámetro NULL en T-SQL
- 26. En SQL, ¿cómo comparar valores de fecha?
- 27. Comparar cadenas de versiones en groovy
- 28. comparando dos cadenas en SQL Server
- 29. Comparar DATETIME y DATE ignorando la parte de tiempo
- 30. comparar cadenas como números en SQLite3
seleccione RPAD (a.name, 10, '=') "Nombre del Cliente", RPAD (b.name, 12, '*') "Nombre del Consumidor" de s_customer a, b s_region donde una .region_id = b.id AND a.name LIKE '% sport%' Deporte es la palabra que necesito –