sqlsugar行转列
时间: 2023-12-02 15:04:41 浏览: 53
以下是使用SQLsugar实现行转列的示例代码:
```csharp
// 定义一个类来存储查询结果
public class Result
{
public int Id { get; set; }
public int A { get; set; }
public int B { get; set; }
public int C { get; set; }
}
// 执行查询
var result = db.A.Queryable()
.GroupBy(a => a.Id)
.Select(a => new Result
{
Id = a.Id,
A = SqlFunc.AggregateMax(a.Type == "a" ? a.Number : 0),
B = SqlFunc.AggregateMax(a.Type == "b" ? a.Number : 0),
C = SqlFunc.AggregateMax(a.Type == "c" ? a.Number : 0)
})
.ToList();
```
在上面的代码中,我们首先定义了一个名为`Result`的类,用于存储查询结果。然后,我们使用`Queryable()`方法来创建一个查询对象,使用`GroupBy()`方法按照`Id`字段进行分组,使用`Select()`方法将每个分组的结果转换为一个`Result`对象。在`Select()`方法中,我们使用`SqlFunc.AggregateMax()`方法来计算每个分组中`Type`为`a`、`b`、`c`的最大值,并将结果存储到`A`、`B`、`C`字段中。最后,我们使用`ToList()`方法执行查询并将结果存储到`result`变量中。