我有一個表格參數有2列id(整數)和param_specs(文本)。如何在postgres中從json數組中提取特定元素?
實際param_specs柱看起來像上述PIC(爲了簡化它檢查以下內容: - )
param_specs
[
{"paramName":"param1",
"type":"string",
"defaultValue":"tomcat7",
"optional":false,
"deploymentParam":false},
{"paramName":"param123PreStopAction",
"type":"path",
"defaultValue":"HELLO",
"optional":false,
"deploymentParam":false}
]
因此,它是JSON數組的數組,我想獲取的paramName
param123PreStopAction
即defaultValue
字段HELLO 。
**** ****編輯作爲 可這是我的表稱爲參數看起來就像兩列我想每一行的默認值在參數表,其中PARAMNAME圖像中可以看出LIKE(%PostStopAction)或(%PreStopAction)檢查圖像(即PARAMNAME應實際PARAMNAME值,例如,內要麼PreStopAction或PostStopAction「mytomcat7 PostStopAction」大膽的價值觀和獲取其默認值即「後停止')
可能有一些行中不會有任何json有preStop或PostStop paramName像圖像中的第3行
有人可以幫我查詢嗎?
由於JGH一些建議如下: -
選擇 「默認值」 FROM參數 CROSS JOIN橫向 json_to_recordset(a.param_spec :: JSON)爲X( 「PARAMNAME」 文本, 「默認值」文本) WHERE「PARAMNAME」 LIKE「%PreStopAction」 OR‘PARAMNAME’LIKE‘%PostStopAction’
嗨JGH感謝隊友,雖然上述方案的作品,但不是通過JSON數組在內部查詢我想是選擇「默認值」,從json_to_recordset( ' 從參數中選擇param_specs :: json)作爲x(「paramName」text,「defaultValue」text) 其中「paramName」='param123PreStopAction';你能提出一些建議嗎? – 100MIL
請看到,利用側向的加入 – JGH
再次感謝JGH編輯,但在試圖查詢選擇「默認值」 FROM參數 CROSS JOIN橫向 json_to_recordset(a.param_specs :: JSON)爲x(「PARAMNAME」文本,「defaultValue」text) WHERE「paramName」='param123PreStopAction';它通過給消息失敗(json類型的輸入語法無效)。請注意表名是參數。任何想法爲什麼我面臨這個問題? – 100MIL