我想使用存储过程从数据库获取Web API的响应
CustomerID | Offer
CustomerID ==> PK as well as FK for selfrefrencing
ProductID| CustomerID ===>Child Table
我想通过storeprocedure在json中做出这样的响应
{
CustomerID:abc
Offer:1000
Bid:500 Logical column
[
{
ProductID:123
CustomerID:22
}
]
这是一个示例,可能会让您入门。您可以在SSMS中运行它。
DECLARE @Main TABLE ( MainId VARCHAR(3), Offer INT, Bid INT );
INSERT INTO @Main ( MainId, Offer, Bid ) VALUES ( 'abc', 1000, 500 );
DECLARE @Sub TABLE ( fkMainId VARCHAR(3), ProductID INT, CustomerID INT );
INSERT INTO @Sub ( fkMainId, ProductID, CustomerID ) VALUES ( 'abc', 123, 22 );
SELECT
MainId, Offer, Bid, Sub.Items
FROM @Main AS Main
OUTER APPLY (
SELECT (
SELECT ProductID, CustomerID FROM @Sub WHERE fkMainId = Main.MainId FOR JSON PATH
) AS Items
) AS Sub
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER;
返回:
{"MainId":"abc","Offer":1000,"Bid":500,"Items":[{"ProductID":123,"CustomerID":22}]}
美化:
{
"MainId": "abc",
"Offer": 1000,
"Bid": 500,
"Items": [{
"ProductID": 123,
"CustomerID": 22
}]
}