Maison >base de données >tutoriel mysql >Comment convertir correctement JSONB en Float dans PostgreSQL ?

Comment convertir correctement JSONB en Float dans PostgreSQL ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-02 18:37:43203parcourir

How to Correctly Convert JSONB to Float in PostgreSQL?

Conversion JSONB en flottant dans PostgreSQL 9.4

Un utilisateur de PostgreSQL a tenté de convertir une colonne jsonb en flottant à l'aide de la requête suivante :

SELECT (json_data->'position'->'lat') + 1.0 AS lat FROM updates LIMIT 5;

Cependant, ils ont rencontré le error :

ERROR:  operator does not exist: jsonb + numeric

Pour résoudre ce problème, l'utilisateur a tenté un casting explicite à l'aide de l'opérateur ::float, ce qui a généré l'erreur :

ERROR:  operator does not exist: jsonb + double precesion

Pour convertir les valeurs jsonb en flottants, il est Il est essentiel de suivre la bonne priorité des opérateurs. Le -> L'opérateur renvoie une valeur JSON, tandis que l'opérateur ->> L'opérateur renvoie une valeur de texte. Pour réussir à lancer un flottant, vous devez utiliser l'option ->> opérateur.

La syntaxe de requête correcte est :

SELECT (json_data->'position'->>'lat')::float + 1.0 AS lat FROM updates LIMIT 5;

En utilisant l'opérateur ->> opérateur, la valeur jsonb est d'abord convertie en texte, qui peut ensuite être converti en float à l'aide de l'opérateur ::float.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn