[解決済み] Presto の JSON_EXTRACT で ' ' 文字を含むキーに問題がある。
2022-02-04 12:21:24
質問
Presto(0.163)を使ってデータを照会しているのですが、jsonからフィールドを抽出しようとしています。
私は以下のようなjsonを持っており、それは列 'style_attributes'に存在しています。
"attributes": {
"Brand Fit Name": "Regular Fit",
"Fabric": "Cotton",
"Fit": "Regular",
"Neck or Collar": "Round Neck",
"Occasion": "Casual",
"Pattern": "Striped",
"Sleeve Length": "Short Sleeves",
"Tshirt Type": "T-shirt"
}
フィールド 'Short Sleeves' を抽出できません。 以下は、私が使用しているクエリです。
JSON_EXTRACT(style_attributes,'$.attributes.Sleeve Length') を length としてテーブルから選択します。
このクエリは次のエラーで失敗します。「無効なJSONパス: '$.attributes.Sleeve Length'
フィールドに「'」(スペース)がない場合、クエリーは正常に実行されます。
Prestoのドキュメントで解決策を探したのですが、うまくいきませんでした。
解決方法を教えてください。
presto:default> select json_extract_scalar('{"attributes":{"Sleeve Length": "Short Sleeves"}}','$.attributes["Sleeve Length"]');
_col0
---------------
Short Sleeves
または
presto:default> select json_extract_scalar('{"attributes":{"Sleeve Length": "Short Sleeves"}}','$["attributes"]["Sleeve Length"]');
_col0
---------------
Short Sleeves
JSON関数の変更点
は、:func:
json_extract
と :func:json_extract_scalar
関数が が角括弧構文に対応しました。SELECT json_extract(json, '$.store[book]'); SELECT json_extract(json,'$.store["book name"]');
この変更に伴い、以下の文字が追加されました。 ブラケットを使用しないパスセグメントで許容されるのは 英数字、アンダースコア、コロン。また、コロンも使用できません。 は、引用符で囲まれていないブラケット付きパスセグメントで使用されます。新しいブラケット構文 を引用符で囲むと、特殊文字を含む要素にマッチします。
関連
-
[解決済み】「パラメータ@objnameがあいまいか、主張する@objtype(COLUMN)が間違っています」を解決するにはどうすればよいですか?[重複している]。
-
[解決済み】オペランド型の衝突:intはdateと互換性がない + INSERT文はFOREIGN KEY制約と衝突した
-
[解決済み】BULK INSERTで「予期せぬファイルの終了」エラーが発生したROWを特定する?
-
[解決済み] バックエンドバージョンでは、データベースのダイアグラムやテーブルのデザインはサポートされていません。
-
[解決済み] ORA-01790: 式は、対応する式と同じデータ型でなければならないエラーが発生するケース
-
[解決済み] SQL Server - 'RETURN'付近の、条件が想定されるコンテキストで指定された、非ブール型の式。
-
[解決済み] SELECT DISTINCTを指定した場合、ORDER BY項目は必ず選択リストに表示されます。
-
[解決済み] PostgreSQL - json 型の等値演算子を識別できませんでした。
-
[解決済み] マルチパート識別子をバインドできなかった
-
[解決済み] トリガーがコンパイルエラーで作成される
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Excelに合体的な関数はありますか?
-
[解決済み】PL/SQL SELECTに複数のCOUNT(DISTINCT xxx)を指定すると、予期しない結果になる。
-
[解決済み】BULK INSERTで「予期せぬファイルの終了」エラーが発生したROWを特定する?
-
[解決済み】SQL Server: 無効なカラム名
-
[解決済み] ORA-04063: ビューにエラーがあります
-
[解決済み] DELETE文の競合REFERENCE制約
-
[解決済み] CLOBとNCLOBの違いは何ですか?
-
[解決済み] 列名または提供された値の数がテーブル定義と一致しません。
-
[解決済み] SQLでchar値をmoneyに変換できない
-
[解決済み] 時間を時間単位や10分単位でグループ化する方法