У меня есть таблица продуктов со столбцом product_data (тип JSONB), и данные представлены в следующем формате.
[{
"Price": 34599,
"Units": 1,
"productId": 3,
"componentId": 0,
"isDuplicate": false,
"productCode": "PRD-3",
"productName": "OnePlus 6T",
"UnitDiscount": 0,
"discountType": "1",
"componentCode": "",
"componentList": [{
"componentId": 5,
"componentCode": "ACC-1",
"componentName": "Charger",
"componentActive": true,
"componentTaxCode": null,
"componentCategory": "General",
"componentUnitPrice": 0,
"componentCategoryId": 1,
"componentReorderValue": 20
}, {
"componentId": 6,
"componentCode": "ACC-2",
"componentName": "Earphone",
"componentActive": true,
"componentTaxCode": null,
"componentCategory": "General",
"componentUnitPrice": 0,
"componentCategoryId": 1,
"componentReorderValue": 20
}],
"productUnitPrice": 34599,
"UnitPriceDiscount": 34599,
"componentCategory": "",
"componentUnitPrice": ""
}, {
"Price": 1200,
"Units": 1,
"productId": 3,
"componentId": 5,
"isDuplicate": false,
"productCode": "PRD-3",
"productName": "OnePlus 6T",
"UnitDiscount": 0,
"discountType": "1",
"componentCode": "ACC-1",
"componentList": [{
"componentId": 5,
"componentCode": "ACC-1",
"componentName": "Charger",
"componentActive": true,
"componentTaxCode": null,
"componentCategory": "General",
"componentUnitPrice": 0,
"componentCategoryId": 1,
"componentReorderValue": 20
}, {
"componentId": 6,
"componentCode": "ACC-2",
"componentName": "Earphone",
"componentActive": true,
"componentTaxCode": null,
"componentCategory": "General",
"componentUnitPrice": 0,
"componentCategoryId": 1,
"componentReorderValue": 20
}],
"componentName": "Charger",
"productUnitPrice": "",
"UnitPriceDiscount": 1200,
"componentCategory": "General",
"componentUnitPrice": "1200"
}, {
"Price": 800,
"Units": 1,
"productId": 3,
"componentId": 6,
"isDuplicate": false,
"productCode": "PRD-3",
"productName": "OnePlus 6T",
"UnitDiscount": 0,
"discountType": "1",
"componentCode": "ACC-2",
"componentList": [{
"componentId": 5,
"componentCode": "ACC-1",
"componentName": "Charger",
"componentActive": true,
"componentTaxCode": null,
"componentCategory": "General",
"componentUnitPrice": 0,
"componentCategoryId": 1,
"componentReorderValue": 20
}, {
"componentId": 6,
"componentCode": "ACC-2",
"componentName": "Earphone",
"componentActive": true,
"componentTaxCode": null,
"componentCategory": "General",
"componentUnitPrice": 0,
"componentCategoryId": 1,
"componentReorderValue": 20
}],
"componentName": "Earphone",
"productUnitPrice": "",
"UnitPriceDiscount": 800,
"componentCategory": "General",
"componentUnitPrice": "800"
}]
При извлечении данных из запроса ниже показанный не может получить скалярные элементы, в то время как данные JSONB находятся в форме массива.когда вы копируете эти данные в запросе, то, пожалуйста, помогите.
SELECT product_data from (
SELECT jsonb_array_elements(PRODUCT_DATA) as product_data FROM PRODUCTS
) X
, копируя эти данные jsonb вместо столбца в запрос, тогда он работает нормально.