JSON_TABLE
PostgreSQL 🔴 SeniorDéfinition
Fonction SQL/JSON introduite dans PostgreSQL 17 (26 septembre 2024) qui transforme un document JSON en vue relationnelle exploitable dans une clause FROM. La clause COLUMNS définit le mapping de chaque chemin JSON vers une colonne typée, avec NESTED PATH pour extraire des niveaux imbriques.
Analogie
Comme déplier une feuille pliée en accordéon (JSON imbrique) pour en faire un tableau plat lisible ligne par ligne.
Exemple de code
SELECT jt.* FROM my_films,
JSON_TABLE(js, '$.favorites[*]' COLUMNS (
id FOR ORDINALITY,
kind text PATH '$.kind',
title text PATH '$.films[*].title' WITH WRAPPER
)) AS jt;
Cas d'usage
Interroger un champ JSONB avec la même syntaxe qu'une table SQL classique, sans fonctions jsonb_* imbriquées.
Anti-pattern
Continuer a empiler jsonb_array_éléments() et jsonb_extract_path_text() alors que JSON_TABLE exprime la même logique en une seule clause lisible.
Termes liés
Fiche mise à jour le 2026-09-27