104 votes

Comment trouver les lignes dont la valeur contient une lettre minuscule ?

Je cherche une requête SQL qui me donne toutes les lignes où ColumnX contient une lettre minuscule (par exemple "1234aaaa5789"). Idem pour les majuscules.

9voto

subhash Points 170

Dans le serveur MS SQL, utilisez la clause COLLATE.

SELECT Column1
FROM Table1
WHERE Column1 COLLATE Latin1_General_CS_AS = 'casesearch'

Ajout de COLLATE Latin1_General_CS_AS rend la recherche sensible à la casse.

Collation par défaut de l'installation du serveur SQL SQL_Latin1_General_CP1_CI_AS n'est pas sensible à la casse.

Pour changer la collation de n'importe quelle colonne de n'importe quelle table en permanence, exécutez la requête suivante.

ALTER TABLE Table1
ALTER COLUMN Column1 VARCHAR(20)
COLLATE Latin1_General_CS_AS

Pour connaître la collation des colonnes d'une table, exécutez la procédure stockée suivante.

EXEC sp_help DatabaseName

Source : SQL SERVER - Collate - Recherche de requêtes SQL sensibles à la casse

7voto

Mahib Points 2018

J'ai fait quelque chose comme ça pour trouver les minuscules.

SELECT *
FROM YourTable
  where BINARY_CHECKSUM(lower(ColumnName)) = BINARY_CHECKSUM(ColumnName)

3voto

Elzo Valugi Points 10906
mysql> SELECT '1234aaaa578' REGEXP '^[a-z]';

3voto

josecarlos Points 746

Je dois ajouter BINARY à la ColonneX pour obtenir le résultat suivant sensible à la casse

SELECT * FROM MyTable WHERE BINARY(ColumnX) REGEXP '^[a-z]';

1voto

CJM Points 6117

Je ne suis pas un expert de MySQL, mais je vous suggère de consulter les sites suivants REGEXP .

SELECT * FROM MyTable WHERE ColumnX REGEXP '^[a-z]';

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X