SQL LENGTH()

Dans le langage SQL la fonction LENGTH() permet de calculer la longueur d’une chaîne de caractères.

A noter : la fonction se base sur le nombre d’octets. Un caractère multi-octet compte comme un seul caractère. Autrement dit, un caractère tel que “œ” compte comme un seul caractère.

Nom de la fonction selon le Système de Gestion de Base de Données (SGBD) :

  • LENGTH() MySQL, PostgreSQL et Oracle
  • LEN() SQL Server

Syntaxe

Cette fonction SQL s’utilise avec une structure suivante :

SELECT LENGTH('exemple');

Résultat :

7

Exemple

Pour le bien de ce tutoriel, nous allons considérer une table utilisateur qui contient le login, la ville et le numéro de téléphone d’un utilisateur.

Table utilisateur :

idloginvilletelephone
1aaParis123
2paulLyon06.00.00.00.00
3leolebeauLyon0600000000
4johnLille1

Connaître la longueur du login

Il est possible de connaître la longueur du login de chaque utilisateur grâce à la fonction LENGTH(). Cette longueur peut être affichée en utilisant une requête SQL telle que celle-ci:

SELECT id, login, LENGTH(login) AS login_length, ville, telephone
FROM utilisateur

Résultat :

idloginlogin_lengthvilletelephone
1aa2Paris123
2paul4Lyon06.00.00.00.00
3leolebeau9Lyon0600000000
4john4Lille1

Extraire les utilisateur avec un login inférieur à 5 caractères

Imaginons que pour une raison quelconque, les utilisateurs ayant un login de moins de 5 caractères ne soient pas assez sécurisés. Il est possible d’extraire la liste de ces utilisateurs avec la fonction LENGTH(), comme le montre la requête suivante:

SELECT id, login, ville, telephone
FROM utilisateur
WHERE LENGTH(login) < 5

Résultat :

idloginvilletelephone
1aaParis123
2paulLyon06.00.00.00.00
4johnLille1

Extraire les utilisateurs avec un numéro de téléphone inférieur à 10 caractères

Si un numéro de téléphone fait moins de 10 caractères, c’est peut-être parce que l’utilisateur l’a mal indiqué. Il est donc possible d’extraire ces utilisateurs avec la requête SQL suivante :

SELECT id, login, ville, telephone
FROM utilisateur
WHERE LENGTH(telephone) < 10

Résultat :

idloginvilletelephone
1aaParis123
4johnLille1
Partager