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