ホームページ >データベース >mysql チュートリアル >PostgreSQL で JSONB を Float に正しく変換するにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。