PostgreSQL の jsonb 型を Float に変換する
この記事では、PostgreSQL の jsonb 型を float に変換するという課題について説明します。 jsonb データに対して算術演算を実行しようとすると問題が発生し、デフォルトでエラーが返されます。
初期クエリとエラー
初期クエリが表示されます:
SELECT (json_data->'position'->'lat') + 1.0 AS lat FROM updates LIMIT 5;
この演算子は jsonb 型と数値型に適用できないため、このクエリはエラーをトリガーします。以下に示すように、明示的なキャストを追加すると、別のエラーが発生します。
SELECT (json_data->'position'->'lat')::float + 1.0 AS lat FROM updates LIMIT 5;
エラー メッセージは、演算子が jsonb と倍精度の間で使用できないことを示します。
JSON Operators
この問題は、->演算子は JSON オブジェクトを返しますが、->->テキストを出力します。 jsonb 値を float に正しくキャストするには、 ->->
解決策
この問題の解決策は、-> を置き換えることです。 ->-> を含む演算子:
SELECT (json_data->'position'->>'lat')::float + 1.0 AS lat FROM updates LIMIT 5
この変更されたクエリは、jsonb 値を float に正しくキャストし、エラーなしで加算演算を実行するようになりました。
以上がPostgreSQL の jsonb を算術演算用に Float に正しく変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。