Je recherche une requête SQL qui me donne toutes les lignes où ColumnX contient une lettre minuscule (par exemple, "1234aaaa5789"). Idem pour les majuscules.
SELECT * FROM my_table
WHERE UPPER(some_field) != some_field
Cela devrait fonctionner avec des personnages amusants comme åäöøüæï. Vous devrez peut-être utiliser un classement utf-8 spécifique à la langue pour la table.
SELECT * FROM my_table WHERE my_column = 'my string'
COLLATE Latin1_General_CS_AS
Cela rendrait une recherche sensible à la casse.
EDIT
Comme indiqué dans kouton 's commentaire ici et tormuto 's commentaire ici celui qui fait face à un problème avec le classement ci-dessous
COLLATE Latin1_General_CS_AS
doit d'abord vérifier le classement par défaut pour son serveur SQL, sa base de données respective et la colonne en question; et transmettez le classement par défaut avec l'expression de requête. La liste des classements peut être trouvée ici .
SELECT * FROM Yourtable
WHERE UPPER([column_NAME]) COLLATE Latin1_General_CS_AS !=[Column_NAME]
pour rechercher toutes les lignes en minuscule
SELECT *
FROM Test
WHERE col1
LIKE '%[abcdefghijklmnopqrstuvwxyz]%'
collate Latin1_General_CS_AS
Merci Manesh Joseph
Le serveur IN MS SQL utilise la clause COLLATE.
SELECT Column1
FROM Table1
WHERE Column1 COLLATE Latin1_General_CS_AS = 'casesearch'
L'ajout de COLLATE Latin1_General_CS_AS
rend la recherche sensible à la casse.
Le classement par défaut de l'installation SQL Server SQL_Latin1_General_CP1_CI_AS
n'est pas sensible à la casse.
Pour modifier le classement de la colonne de n'importe quelle table, exécutez en permanence la requête suivante.
ALTER TABLE Table1
ALTER COLUMN Column1 VARCHAR(20)
COLLATE Latin1_General_CS_AS
Pour connaître le classement de la colonne pour n'importe quelle table, exécutez la procédure stockée suivante.
EXEC sp_help DatabaseName
Source: SQL SERVER - Assembler - Recherche de requête SQL sensible à la casse
mysql> SELECT '1234aaaa578' REGEXP '^[a-z]';
Voici comment je l'ai fait pour la table encodée utf8 et la colonne utf8_unicode_ci, qui ne semble pas avoir été publiée exactement:
SELECT *
FROM table
WHERE UPPER(column) != BINARY(column)
J'ai fait quelque chose comme ça pour découvrir les minuscules.
SELECT *
FROM YourTable
where BINARY_CHECKSUM(lower(ColumnName)) = BINARY_CHECKSUM(ColumnName)
--Pour SQL
SELECT *
FROM tablename
WHERE tablecolumnname LIKE '%[a-z]%';
Dans Posgresql, vous pouvez utiliser ~
Par exemple, vous pouvez rechercher toutes les lignes qui ont col_a
avec une lettre en minuscule.
select * from your_table where col_a '[a-z]';
Vous pouvez modifier l'expression Regex selon vos besoins.
Cordialement,
Je ne suis pas un expert sur MySQL, je vous suggère de regarder REGEXP
.
SELECT * FROM MyTable WHERE ColumnX REGEXP '^[a-z]';
Je dois ajouter BINARY à la ColumnX, pour obtenir le résultat en tant quesensible à la casse
SELECT * FROM MyTable WHERE BINARY(ColumnX) REGEXP '^[a-z]';