ホームページ >データベース >mysql チュートリアル >PostgreSQL で JSONB を Float に正しく変換するにはどうすればよいですか?

PostgreSQL で JSONB を Float に正しく変換するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-02 18:37:43203ブラウズ

How to Correctly Convert JSONB to Float in PostgreSQL?

PostgreSQL 9.4 での JSONB から Float への変換

PostgreSQL ユーザーが、次のクエリを使用して jsonb 列を float に変換しようとしました:

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

しかし、彼らはエラー:

ERROR:  operator does not exist: jsonb + numeric

この問題を解決するために、ユーザーは ::float 演算子を使用して明示的にキャストしようとしました。その結果、エラーが発生しました:

ERROR:  operator does not exist: jsonb + double precesion

jsonb 値を float に変換するには、正しい演算子の優先順位に従うことが重要です。 ->演算子は JSON 値を返しますが、->> 演算子は JSON 値を返します。演算子はテキスト値を返します。 float に正常にキャストするには、 ->> を使用する必要があります。演算子。

正しいクエリ構文は次のとおりです。

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

->> を使用します。演算子を使用すると、まず jsonb 値がテキストに変換され、次に ::float 演算子を使用して float にキャストできます。

以上がPostgreSQL で JSONB を Float に正しく変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。