SQL En retrait


Exemple

Il n'y a pas de norme largement acceptée. Tout le monde s'accorde sur le fait que tout faire en une seule ligne est mauvais:

SELECT d.Name, COUNT(*) AS Employees FROM Departments AS d JOIN Employees AS e ON d.ID = e.DepartmentID WHERE d.Name != 'HR' HAVING COUNT(*) > 10 ORDER BY COUNT(*) DESC;

Au minimum, mettez chaque clause dans une nouvelle ligne et séparez les lignes si elles deviennent trop longues sinon:

SELECT d.Name,
       COUNT(*) AS Employees
FROM Departments AS d
JOIN Employees AS e ON d.ID = e.DepartmentID
WHERE d.Name != 'HR'
HAVING COUNT(*) > 10
ORDER BY COUNT(*) DESC;

Parfois, tout ce qui suit le mot-clé SQL introduisant une clause est en retrait sur la même colonne:

SELECT   d.Name,
         COUNT(*) AS Employees
FROM     Departments AS d
JOIN     Employees AS e ON d.ID = e.DepartmentID
WHERE    d.Name != 'HR'
HAVING   COUNT(*) > 10
ORDER BY COUNT(*) DESC;

(Cela peut également être fait en alignant correctement les mots-clés SQL.)

Un autre style courant consiste à placer des mots-clés importants sur leurs propres lignes:

SELECT
    d.Name,
    COUNT(*) AS Employees
FROM
    Departments AS d
JOIN
    Employees AS e
    ON d.ID = e.DepartmentID
WHERE
    d.Name != 'HR'
HAVING
    COUNT(*) > 10
ORDER BY
    COUNT(*) DESC;

L'alignement vertical de plusieurs expressions similaires améliore la lisibilité:

SELECT Model,
       EmployeeID
FROM Cars
WHERE CustomerID = 42
  AND Status     = 'READY';

L'utilisation de plusieurs lignes rend plus difficile l'intégration de commandes SQL dans d'autres langages de programmation. Cependant, de nombreux langages ont un mécanisme pour les chaînes multi-lignes, par exemple @"..." en C #, """...""" en Python ou R"(...)" en C ++.