0
votes

Récupérer des données dans un objet SQL JSON et une matrice

J'ai des données formatées de la manière suivante dans une colonne nommée valeur:

{ "Les données" : [ "AVM": "1 000", "Emplacement": "ca" ] }

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.

Est-ce que quelqu'un connaît une solution élégante pour pouvoir faire cela?

Sélectionnez p. "Valeur" -> "Données" de la table comme p;

mais pas capable de creuser dans la matrice pour récupérer les valeurs AVM.


3 commentaires

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 ).


3 Réponses :


0
votes

Si vous essayez la valeur telle que écrite: xxx

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/ ): xxx

Si vous avez PLPYTHONU ou PLPYTHON3U installé dans la base de données, vous pouvez écrire une fonction qui a fait la même chose.


1 commentaires

Merci, je les teste.



-1
votes

Ce que vous recherchez est une requête similaire à cette xxx


Vous pouvez également filtrer les données: xxx plus Détails ICI


2 commentaires

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 / ...



0
votes

J'ai pu compléter la requête en utilisant ce qui suit dans une base de données postgre:

Sélectionnez (T.Value -> 'Data' - >> 0) :: JSON -> 'AVM' comme "avm" de la table comme t;

Le format général du pseudo code.


0 commentaires