如何在SQL Server中获取List
本文关键字:List ColumnType 获取 SQL Server | 更新日期: 2023-09-27 18:30:54
我有如下所示的建立表,
EstabId Name CheckinDate
114883 Marconfort Griego Hotel 2011-09-28 00:00:00.000
114910 Royal Costa Hotel 2011-10-18 00:00:00.000
114912 Roc Flamingo Hotel 2011-11-22 00:00:00.000
114912 Roc Flamingo Hotel 2011-11-29 00:00:00.000
114912 Roc Flamingo Hotel 2011-12-06 00:00:00.000
114912 Roc Flamingo Hotel 2011-12-13 00:00:00.000
114912 Roc Flamingo Hotel 2011-12-20 00:00:00.000
114894 Gran Hotel Blue Sea 2012-01-17 00:00:00.000
114894 Gran Hotel Blue Sea 2012-01-31 00:00:00.000
假设,如果我想像这样构建我的查询结果,
Response : {
[
EstabId: 114912,
Name: 'Roc Flamingo Hotel',
CheckinDates : [2011-11-22 00:00:00.000, 2011-11-29 00:00:00.000, 2011-12-06 00:00:00.000, 2011-12-13 00:00:00.000, 2011-12-20 00:00:00.000]
,... ]
}
是否有任何推荐的方法可以从SQL Stored Procedure
或C# + SQL combination
实现此结构?
PS:我听说,SQL SERVER将不支持列表
任何回应将不胜感激。
这可能有效。但是,您还应该阅读本文以满足特定需求。
此查询将返回带有逗号分隔的签入日期的结果,您可以将其存储在 Establishment 类的集合中。
SELECT es1.EstabId , es2.Name ,
(
SELECT @CheckInDateList = COALESCE(@CheckInDateList +',' ,'') + CheckinDate
FROM Establishment es2
WHERE
es2.EstabId = es1.EstabId
AND
es2.Name = es1.Name
) as CheckinDates
FROM Establishment es1
你可以创建一个这样的类
public class Checkins
{
public int EstabId { get; set; }
public string Name { get; set; }
public List<DateTime> CheckInDates { get; set; }
}
然后创建一个签入实例并填写数据库中的数据。最后序列化此实例以获得预期的结果。