sql - sirve - requisitos de la letra de cambio
Cómo encontrar filas que tienen un valor que contiene una letra minúscula (11)
Estoy buscando una consulta SQL que me dé todas las filas donde ColumnX contiene letras minúsculas (por ejemplo, "1234aaaa5789"). Lo mismo para mayúsculas.
--Por Sql
SELECT *
FROM tablename
WHERE tablecolumnname LIKE ''%[a-z]%'';
Así es como lo hice para la tabla con codificación utf8 y la columna utf8_unicode_ci, que no parece que se haya publicado exactamente:
SELECT *
FROM table
WHERE UPPER(column) != BINARY(column)
EN EL SERVIDOR MS SQL use la cláusula COLLATE.
SELECT Column1
FROM Table1
WHERE Column1 COLLATE Latin1_General_CS_AS = ''casesearch''
Agregar COLLATE Latin1_General_CS_AS
hace que la búsqueda sea sensible a mayúsculas y minúsculas.
La SQL_Latin1_General_CP1_CI_AS
predeterminada de la instalación de SQL Server SQL_Latin1_General_CP1_CI_AS
no SQL_Latin1_General_CP1_CI_AS
mayúsculas y minúsculas.
Para cambiar la intercalación de cualquier columna para cualquier tabla permanentemente ejecutada después de la consulta.
ALTER TABLE Table1
ALTER COLUMN Column1 VARCHAR(20)
COLLATE Latin1_General_CS_AS
Para saber la intercalación de la columna para cualquier tabla ejecutada siguiendo el Procedimiento almacenado.
EXEC sp_help DatabaseName
Fuente: SQL SERVER - Intercalar - Búsqueda de consultas SQL sensible a mayúsculas y minúsculas
En Posgresql podrías usar ~
Por ejemplo, podría buscar todas las filas que tengan col_a
con cualquier letra en minúscula
select * from your_table where col_a ''[az]'';
Puede modificar la expresión Regex según sus necesidades.
Saludos,
No soy un experto en MySQL. Sugiero que mires a REGEXP
.
SELECT * FROM MyTable WHERE ColumnX REGEXP ''^[a-z]'';
Tengo que agregar BINARY al ColumnX , para obtener un resultado que distinga entre mayúsculas y minúsculas
SELECT * FROM MyTable WHERE BINARY(ColumnX) REGEXP ''^[a-z]'';
para buscar todas las filas en minúsculas
SELECT *
FROM Test
WHERE col1
LIKE ''%[abcdefghijklmnopqrstuvwxyz]%''
collate Latin1_General_CS_AS
Gracias Manesh Joseph
SELECT * FROM Yourtable
WHERE UPPER([column_NAME]) COLLATE Latin1_General_CS_AS !=[Column_NAME]
SELECT * FROM my_table
WHERE UPPER(some_field) != some_field
Esto debería funcionar con personajes divertidos como åäöøüæï. Es posible que necesite utilizar una intercalación utf-8 específica de un idioma para la tabla.
SELECT * FROM my_table WHERE my_column = ''my string''
COLLATE Latin1_General_CS_AS
Esto haría una búsqueda sensible a mayúsculas y minúsculas.
EDITAR
Como se indica en el comentario de tormuto aquí y en el comentario de tormuto aquí quien tiene problemas con la colación siguiente
COLLATE Latin1_General_CS_AS
primero debe verificar la intercalación predeterminada para su servidor SQL, su respectiva base de datos y la columna en cuestión; y pase la intercalación predeterminada con la expresión de consulta. La lista de intercalaciones se puede encontrar here .
mysql> SELECT ''1234aaaa578'' REGEXP ''^[a-z]'';