返回存储过程中声明的数组



我目前遇到了一个存储过程的问题。我必须从该存储过程返回计算数据的数组/列表。

使用实体框架检索服务器,但问题不在这里。

我想返回这样的数据:

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来更新表,类似于模拟数组的字典。

相关内容

  • 没有找到相关文章

最新更新