我目前遇到了一个存储过程的问题。我必须从该存储过程返回计算数据的数组/列表。
使用实体框架检索服务器,但问题不在这里。
我想返回这样的数据:
field1 : int,
field2 : string,
field3 : int,
calculatedData : List<int>
现在我的程序是这样的:
CREATE PROCEDURE [dbo].[SP_GDF_UNITE_Previsionnel]
AS
DECLARE @calculatedData TABLE(jour int, valeur int)
SELECT
field1,
field2 ,
field3
FROM
(... content )
...
我想返回calculatedData
,但我不知道怎么做。
也许通过改变我的程序结构?
希望有人能帮我做这件事。
尝试在选择中包含数组,但不工作。我没有在网上找到任何关于怎么做的信息。SELECT…FROM必须在这个过程中。
方法1
从select语句返回一个json结构。嵌套json就像json数据中的数组一样。根据您的示例,json子查询可以有一条或多条记录。
现在您可以将json数据转换为python中的字典并递归检索值
/****** Script for SelectTopNRows command from SSMS ******/
select
Field1
,Field2
,Field3
,(select * from dbo.myTable myTable2
where myTable2.Field1=myTable.Field1
for json path) as data
FROM dbo.myTable myTable
where myTable.Field1=123
for json path
方法2
尝试创建一个临时表,而不是一个数组,然后插入值到临时表。
declare @tmp_table as table(newid uniqueidentifier , field1 varchar(10));
insert into @tmp_table(newid,field1) values(newid(),'a'),(newid(),'b')
select * from @tmp_table
您现在可以使用newid作为hashkey来更新表,类似于模拟数组的字典。