你好,我正试图在Microsoft SQL Server Management studio中进行一个取值,在我的一个列中有一个ints数组,我想根据另一个列的值进行检索。
我正在做这样的查询。
int[] appsId = db.Fetch<int[]>($"SELECT Apps FROM [dbo].[Group] WHERE Name = @0", user.Groups[0]).FirstOrDefault();
该表有以下(缩短的)信息。
Name Apps
123 [356, 1589]
我得到的异常是:"Input string was not in a correct format"。
任何想法,谢谢
可能需要在查询中解包那个数组。
SELECT Value
FROM [dbo].[Group]
CROSS APPLY
(
SELECT CAST(VALUE AS INT) Value
FROM OPENJSON(APPS)
) v
WHERE Name = @0
解决方法如下:
Entities.Database.Group dbScope = db.Fetch<Entities.Database.Group>($"SELECT * FROM [dbo].[Group] WHERE Name = @0", user.Groups[0]).FirstOrDefault();
由于Group是定义Object的类 你可以映射你需要的字段,在这种情况下是Apps.
谢谢大家!