add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
CREATE TABLE SalesOrder (SalesOrderID, Customer, SoldDate, ShipDate) AS
SELECT 1, 'Customer1', DATE '2022-07-12', DATE '2022-07-12' FROM DUAL UNION ALL
SELECT 2, 'Customer1', DATE '2022-07-12', DATE '2022-07-12' FROM DUAL UNION ALL
SELECT 3, 'Customer2', DATE '2022-07-12', DATE '2022-07-12' FROM DUAL;
3 rows affected
CREATE TABLE Lines (LineItemID, LineNumber, SalesOrderID, Product, Price) AS
SELECT 1, 1, 1, 'Eggs', 1.00 FROM DUAL UNION ALL
SELECT 2, 2, 1, 'Milk', 1.00 FROM DUAL UNION ALL
SELECT 3, 1, 2, 'Bread', 1.00 FROM DUAL UNION ALL
SELECT 4, 2, 2, 'Eggs', 1.00 FROM DUAL UNION ALL
SELECT 5, 3, 2, 'Milk', 1.00 FROM DUAL UNION ALL
SELECT 6, 1, 3, 'Eggs', 1.00 FROM DUAL;
6 rows affected
SELECT JSON_OBJECT(
KEY 'salesOrderId' VALUE s.salesOrderId,
KEY 'customer' VALUE s.customer,
KEY 'soldDate' VALUE s.soldDate,
KEY 'shipDate' VALUE s.shipDate,
KEY 'lineItems' VALUE l.lineItems FORMAT JSON
RETURNING CLOB
) AS salesorder
FROM salesorder s
CROSS JOIN LATERAL (
SELECT JSON_ARRAYAGG(
JSON_OBJECT(
KEY 'lineItemId' VALUE l.lineItemid,
KEY 'lineNumber' VALUE l.lineNumber,
KEY 'product' VALUE l.product,
KEY 'price' VALUE l.price
)
ORDER BY l.lineNumber
RETURNING CLOB
) AS lineItems
FROM lines l
WHERE l.salesorderid = s.salesorderid
) l
SALESORDER
{"salesOrderId":1,"customer":"Customer1","soldDate":"2022-07-12T00:00:00","shipDate":"2022-07-12T00:00:00","lineItems":[{"lineItemId":1,"lineNumber":1,"product":"Eggs","price":1},{"lineItemId":2,"lineNumber":2,"product":"Milk","price":1}]}
{"salesOrderId":2,"customer":"Customer1","soldDate":"2022-07-12T00:00:00","shipDate":"2022-07-12T00:00:00","lineItems":[{"lineItemId":3,"lineNumber":1,"product":"Bread","price":1},{"lineItemId":4,"lineNumber":2,"product":"Eggs","price":1},{"lineItemId":5,"lineNumber":3,"product":"Milk","price":1}]}
{"salesOrderId":3,"customer":"Customer2","soldDate":"2022-07-12T00:00:00","shipDate":"2022-07-12T00:00:00","lineItems":[{"lineItemId":6,"lineNumber":1,"product":"Eggs","price":1}]}