Voici trois exemples de retour de lignes contenant des caractères alphanumériques dans SQL Server.
Les caractères alphanumériques sont des caractères alphabétiques et numériques.
Exemple de données
Supposons que nous ayons le tableau suivant :
CREATE TABLE t1 (
c1 varchar(255) NULL
);
INSERT INTO t1 VALUES
('Music'),
('Live Music'),
('Café'),
('Café Del Mar'),
('100 Cafés'),
('[email protected]'),
('1 + 1'),
('()'),
('[email protected]#&()–[{}]:;'',?/*'),
('`~$^+=<>“'),
('$1.50'),
('Player 456'),
('007'),
(null),
(''),
('é'),
('É'),
('é 123'),
('ø'),
('ø 123');
SELECT c1 FROM t1;
Résultat :
+----------------------+ | c1 | +----------------------+ | Music | | Live Music | | Café | | Café Del Mar | | 100 Cafés | | [email protected] | | 1 + 1 | | () | | [email protected]#&()–[{}]:;',?/* | | `~$^+=<>“ | | $1.50 | | Player 456 | | 007 | | NULL | | | | é | | É | | é 123 | | ø | | ø 123 | +----------------------+
Exemple 1 : la ligne contient des données alphanumériques
Le code suivant renvoie les lignes contenant des caractères alphanumériques (et pouvant également contenir des caractères non alphanumériques) :
SELECT c1 FROM t1
WHERE c1 LIKE '%[a-zA-Z0-9]%';
Résultat :
+-------------------+ | c1 | |-------------------| | Music | | Live Music | | Café | | Café Del Mar | | 100 Cafés | | [email protected] | | 1 + 1 | | $1.50 | | Player 456 | | 007 | | é | | É | | é 123 | | ø | | ø 123 | +-------------------+
Exemple 2 :la ligne contient UNIQUEMENT des données alphanumériques
Le code suivant renvoie les lignes qui ne contiennent que des caractères alphanumériques :
SELECT c1 FROM t1
WHERE c1 NOT LIKE '%[^a-zA-Z0-9]%'
AND c1 LIKE '%[a-zA-Z0-9]%';
Résultat :
+-------+ | c1 | |-------| | Music | | Café | | 007 | | é | | É | | ø | +-------+
Les espaces sont considérés comme non alphanumériques. Nous pouvons inclure des espaces en ajustant le code comme suit :
SELECT c1 FROM t1
WHERE c1 NOT LIKE '%[^a-zA-Z0-9 ]%'
AND c1 LIKE '%[a-zA-Z0-9 ]%';
Résultat :
+--------------+ | c1 | |--------------| | Music | | Live Music | | Café | | Café Del Mar | | 100 Cafés | | Player 456 | | 007 | | é | | É | | é 123 | | ø | | ø 123 | +--------------+
Exemple 3 :Une méthode alternative
Nous pouvons alternativement utiliser le PATINDEX()
fonction pour obtenir le même résultat.
Le code suivant renvoie les lignes qui ne contiennent que des caractères alphanumériques :
SELECT c1 FROM t1
WHERE PATINDEX('%[^0-9a-zA-Z]%', c1) = 0
AND PATINDEX('%[a-zA-Z0-9]%', c1) > 0;
Résultat :
+-------+ | c1 | |-------| | Music | | Café | | 007 | | é | | É | | ø | +-------+
Et avec des espaces :
SELECT c1 FROM t1
WHERE PATINDEX('%[^0-9a-zA-Z ]%', c1) = 0
AND PATINDEX('%[a-zA-Z0-9 ]%', c1) > 0;
Résultat :
+--------------+ | c1 | |--------------| | Music | | Live Music | | Café | | Café Del Mar | | 100 Cafés | | Player 456 | | 007 | | é | | É | | é 123 | | ø | | ø 123 | +--------------+