J'ai des données formatées de la manière suivante dans une colonne nommée valeur: p>
{ "Les données" : [ "AVM": "1 000", "Emplacement": "ca" ] } p>
J'essaie d'écrire une requête SQL simple pour récupérer les valeurs AVM pour l'ensemble du jeu de données stocké dans une base de données PostgreSQL, qui correspond à quelques milliers d'enregistrements. P>
Est-ce que quelqu'un connaît une solution élégante pour pouvoir faire cela? P>
Sélectionnez p. "Valeur" -> "Données" de la table comme p; p>
mais pas capable de creuser dans la matrice pour récupérer les valeurs AVM. P>
3 Réponses :
Si vous essayez la valeur telle que écrite: supposant que les données sont YAML, vous pouvez le retirer de la base de données et utiliser un analyseur YAML pour obtenir les données. Un exemple en python ( https://pyyaml.org/ ): p> Si vous avez PLPYTHONU ou PLPYTHON3U code> installé dans la base de données, vous pouvez écrire une fonction qui a fait la même chose. P> P>
Merci, je les teste.
Ce que vous recherchez est une requête similaire à cette Vous pouvez également filtrer les données: p>
Merci, je les teste.
Deux problèmes avec cette première, la chaîne n'est pas valide JSON. Deuxièmement, cette fonction est pour MS SQL Server pas PostgreSQL. Si vous voulez faire des choses similaires à postgres: PostgreSQL. org / docs / 12 / ...
J'ai pu compléter la requête en utilisant ce qui suit dans une base de données postgre: p>
Sélectionnez (T.Value -> 'Data' - >> 0) :: JSON -> 'AVM' comme "avm" de la table comme t; p>
Le format général du pseudo code. p>
Ce n'est pas un json approprié
Savez-vous comment accéder en fonction de ce format? @AkhileShmishra
D'où viennent les valeurs? On dirait que cela pourrait être Yaml ( Yaml.org ).