1

您好,我正在尝试获取 Microsoft SQL Server Management Studio,其中在我的一个列中有一个整数数组,我想根据另一个列值检索这些整数。

我正在做这样的查询:

int[] appsId = db.Fetch<int[]>($"SELECT Apps FROM [dbo].[Group] WHERE Name = @0", user.Groups[0]).FirstOrDefault();

该表具有以下(缩短的)信息:

Name    Apps
123     [356, 1589]

使用这个我得到了异常:'输入字符串的格式不正确'。

任何想法,谢谢!

4

2 回答 2

1

可能需要在查询中解压缩该数组:

SELECT Value 
FROM [dbo].[Group] 
CROSS APPLY 
( 
   SELECT CAST(VALUE AS INT) Value 
   FROM OPENJSON(APPS) 
) v
WHERE Name = @0
于 2020-06-17T13:16:18.060 回答
0

解决方案如下:

Entities.Database.Group dbScope = db.Fetch<Entities.Database.Group>($"SELECT * FROM [dbo].[Group] WHERE Name = @0", user.Groups[0]).FirstOrDefault();

由于 Group 是定义 Object 的类,因此您可以映射所需的字段,在本例中为 Apps。

感谢大家!

于 2020-06-19T09:57:15.787 回答