小编Iho*_*eka的帖子

SQL Server Weird Grouping Scenario由多列和OR组成

我有一个奇怪的分组方案,并找到一些麻烦找出什么是在SQL中分组的最佳方式.

想象一下,我们有以下一个表

CREATE TABLE Item
(
  KeyId VARCHAR(1) NOT NULL,
  Col1 INT NULL,
  Col2 INT NULL,
  Col3 INT NULL
)

GO

INSERT INTO Item (KeyId, Col1, Col2, Col3)
VALUES 
('a',1,2,3),
('b',5,4,3),
('c',5,7,6),
('d',8,7,9),
('e',11,10,9),
('f',11,12,13),
('g',20,22,21),
('h',23,22,24)
Run Code Online (Sandbox Code Playgroud)

我需要在此表中对记录进行分组,以便如果两个记录的Col1 OR Col2或Col3相同,则这两个记录应该在同一个组中,并且应该存在链接.换句话说,如上述数据记录'a'(第一个记录)有Col3 = 3而记录'b'(第二个记录)也有Col3 = 3,所以这两个应该在一个组中.但是记录'b'与记录'c'具有相同的Col1,因此记录'c'应该与'a'和'b'在同一组中.然后记录'd'与'c'中的Col2相同,因此这也应该在同一组中.类似地,'e'和'f'分别在Col3和Col1中具有相同的值.

另一方面,记录'g'和'h'将在一个组中(因为它们具有相同的Col2 = 22),但是该组将与记录'a','b','c'的组不同, 'd', 'E', 'F'.

查询的结果应该是这样的

KeyId GroupId
'a'   1 
'b'   1
'c'   1
'd'   1
'e'   1
'f'   1
'g'   2
'h'   2
Run Code Online (Sandbox Code Playgroud)

可能有一种方法可以使用一些循环/游标,但我开始考虑更清洁的方式,这似乎很难.

sql sql-server group-by

9
推荐指数
1
解决办法
156
查看次数

Sitecore - 将图像存储在Core数据库中

是否可以从存储在Core数据库中的MediaLibrary访问图像.

我使用以下代码从Core数据库获取项目URL:Sitecore.Resources.Media.MediaManager.GetMediaUrl(mediaItem)

但是当我尝试使用该URL设置图像src值时,它会显示:找不到资源.

.net c# sitecore content-management-system

2
推荐指数
1
解决办法
328
查看次数

将LINQ表达式作为参数传递给where子句

请在投票结束前仔细阅读该问题.这不是重复的.

我正在尝试构建一个泛型方法,返回类型为T的实体列表,这些实体连接到AuditLog类型的日志.这是我使用的LINQ中的LEFT JOIN解释

var result = from entity in entitySet
             from auditLog in auditLogSet.Where(joinExpression).DefaultIfEmpty()
             select new { entity, auditLog };
return result.GroupBy(item => item.entity)
                     .Select(group => new
                         {
                             Entity = group.Key,
                             Logs = group.Where(i => i.auditLog != null).Select(i => i.auditLog)
                         });
Run Code Online (Sandbox Code Playgroud)

问题出在joinExpression中.我想将它传递给WHERE子句,但它对于不同的具体类型T(它依赖于实体变量)是不同的,例如对于特定实体它可能是

joinExpression = l => l.TableName == "SomeTable" && l.EntityId == entity.SomeTableId;
Run Code Online (Sandbox Code Playgroud)

注意上面的entity.SomeTableId.这就是我无法在查询开始之前初始化joinExpression的原因.如果它实际上依赖于"entity"变量(它是查询本身的一部分),我如何将joinExpression作为参数传递?

.net c# linq entity-framework linq-expressions

0
推荐指数
1
解决办法
1万
查看次数

从图像中读取黑色像素

我有125*25黑白.png图片.我想读黑色像素.用于LED显示屏.我能怎么做?在c#中.

for (int i = 0; i < image.Height ; i++)
{
    for (int j = 0; j < image.Width  ; j++)
    {
        Color c = image.GetPixel(j, i);      //
        x = c.R ;
Run Code Online (Sandbox Code Playgroud)

我可以读红色像素,但我只想要黑色像素.

c# rgb colors

-1
推荐指数
1
解决办法
228
查看次数