Linux, Base de données Postgresql, développement, Internet, emailing et déliverabilité.

Aller au contenu | Aller au menu | Aller à la recherche

la clause SEARCH dans un SELECT récursif

Toujours dans les nouvelles syntaxes apparues dans la release 14 de PostgreSQL autour de la récursivité et après avoir vu la clause CYCLE dans un précédent article, nous allons étudier la clause SEARCH.

La clause SEARCH est une clause optionnelle que l'on peut ajouter à un SELECT récursif pour spécifier une condition de recherche. Elle permet de filtrer les résultats de la requête en utilisant une condition supplémentaire.

L'objectif de la clause SEARCH est de permettre de limiter les résultats d'un SELECT récursif. Elle permet de spécifier une condition qui doit être vérifiée pour que les résultats soient inclus dans la requête.

Voici un exemple concret d'utilisation de la clause SEARCH dans un SELECT récursif :

Supposons que nous ayons une table "employees" qui contient les informations sur les employés d'une entreprise. Cette table contient une colonne "manager_id" qui indique le manager de chaque employé.

Nous pouvons utiliser un SELECT récursif pour récupérer tous les employés qui sont gérés par un certain manager. Nous pouvons également utiliser la clause SEARCH pour filtrer les résultats afin de ne récupérer que les employés qui ont un certain titre.

Voici un exemple de requête qui utilise la clause SEARCH :

WITH RECURSIVE employee_tree AS (
  SELECT id, name, manager_id, title
  FROM employees
  WHERE id = 1
  
  UNION ALL
  
  SELECT e.id, e.name, e.manager_id, e.title
  FROM employees e
  JOIN employee_tree et ON e.manager_id = et.id
  WHERE e.title SEARCH 'Manager'
)
SELECT *
FROM employee_tree;

Dans cet exemple, nous utilisons la clause SEARCH pour filtrer les résultats de la requête pour ne récupérer que les employés qui ont un titre qui contient le mot "Manager". Cette clause est ajoutée à la deuxième partie de la requête SELECT récursive.

En conclusion, la clause SEARCH est une option utile pour limiter les résultats d'un SELECT récursif en utilisant une condition supplémentaire. Elle permet de filtrer les résultats de la requête en fonction de critères spécifiques, ce qui peut être très utile dans les requêtes complexes sur des hiérarchies ou des arbres de données.

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

La discussion continue ailleurs

URL de rétrolien : https://www.footcow.com/index.php/trackback/118

Fil des commentaires de ce billet