我有一张users
桌子:
Id | Name | Age
--------------------
1 | Steve | 21
2 | Jack | 17
3 | Alice | 25
4 | Harry | 14
我还有一个包含其他用户信息的表:
UId | Key | Value
----------------------
1 | Height | 70
2 | Height | 65
2 | Eyes | Blue
4 | Height | 51
3 | Hair | Brown
1 | Eyes | Green
该UId
列链接到表中的Id
列users
。如您所见,并非所有用户都具有相同的附加信息。爱丽丝(Alice)没有身高值,杰克(Jack)是唯一拥有眼睛颜色值等的人。
有没有一种方法可以使用C#
和LINQ
查询将该数据动态地组合到一个表中,因此结果是这样的:
Id | Name | Age | Height | Eyes | Hair
------------------------------------------
1 | Steve | 21 | 70 | Green |
2 | Jack | 17 | 65 | Blue |
3 | Alice | 25 | | | Brown
4 | Harry | 14 | 51 |
如果用户没有该列的值,则它可以保持为空/空。这是否需要某种数据透视?
对于这种情况,您的用户信息字段是恒定的:
var result = users.GroupJoin(details,
user => user.Id,
detail => detail.Id,
(user, detail) => new
{
user.Id,
user.Name,
user.Age,
Height = detail.SingleOrDefault(x => x.Key == "Height").Value,
Eyes = detail.SingleOrDefault(x => x.Key == "Eyes").Value,
Hair = detail.SingleOrDefault(x => x.Key == "Hair").Value,
});
问题内容: 我在C#方面非常有经验,但是仍然还是SQL的初学者。 我们有一个使用MSSQL数据库的C#应用程序。 我们的应用程序的一部分只是简单地编写一系列预查询,作为报告,通过简单地运行查询并将返回的表粘贴到gridView即可显示该报告。用户正在请求一个新的报表,我不能完全确定仅使用SQL还是可以的,并且需要对返回的数据进行处理才能使其看起来正确。 用户想要的数据(以他们希望的方式呈现)将
问题内容: 我们有些SQL杂语。说我有一个看起来像这样的结果… 61E77D90-D53D-4E2E-A09E-9D6F012EB59C | A 61E77D90-D53D-4E2E-A09E-9D6F012EB59C | B 61E77D90-D53D-4E2E-A09E-9D6F012EB59C | C 61E77D90-D53D-4E2E-A09E-9D6F012EB59C | D 7ce9
问题内容: 我有一张桌子,我在其中存储合同的交易,如下所示: 用户应该能够选择查询的时间跨度,我要归档的是,如果用户从01/2012-03-2012中选择一个时间跨度,他会得到结果: 您对我有什么建议吗? 最好的问候,r3try 编辑:非常感谢您的答复!当我搜寻我的问题时,我也偶然发现了旋转问题,但是到目前为止,我还没有找到一个可以真正解决我的问题的示例(因为基本上每个示例都为列条目提供了特定的可
我有这些数据 我想把它变成 < li >我想将列名用作< code>category列的值标签。 < li >每行最多只有一个< code>True值。 这就是MWE 我可以做 。但是,熊猫自己的工具不是有更优雅的方式吗?
问题内容: 我正在使用SQL Server 2008 R2作为排队机制。我将项目添加到表中,并且外部服务读取并处理这些项目。这很有效,但是缺少一件事- 我需要一种机制,我可以尝试从表中选择一行,如果没有一行,则阻塞直到出现(最好是在特定时间段内)。 谁能建议我如何实现这一目标? 问题答案: 我需要一种机制,通过该机制,我可以尝试从表中选择一行,如果没有一行,则阻塞直到有一行(最好是在特定时间段内)
问题内容: 我有一个SQL查询 我希望结果应该是。 请帮帮我!! 问题答案: 试试这个: