在sqlsugar中使用行转列
在SQLSugar中使用行转列,可以使用Pivot函数来实现。Pivot函数可以将一列数据转换为多列,例如将某个表中的员工工资按照部门进行汇总,转换为以部门为列的形式显示。
下面是一个示例代码:
var list = db.Queryable<Employee>()
.GroupBy(e => e.Department)
.Select(e => new
{
Department = e.Department,
Salary1 = SqlFunc.Aggregate(e.Salary, AggregateFunc.Max),
Salary2 = SqlFunc.Aggregate(e.Salary, AggregateFunc.Min)
})
.ToList();
var result = list.ToDataTable().Pivot("Department", "Salary1,Salary2");
在上面的代码中,首先对Employee表进行分组,按照部门进行汇总,并使用SqlFunc.Aggregate函数计算每个部门的最高工资和最低工资。然后将结果转换为DataTable,并使用Pivot函数将部门作为列,最高工资和最低工资作为值进行转换。
需要注意的是,Pivot函数需要将数据转换为DataTable格式才能使用,因此需要使用ToDataTable方法将查询结果转换为DataTable。另外,Pivot函数只能用于固定列数的情况,如果需要将一列数据转换为任意数量的列,可以使用动态SQL语句来实现
原文地址: https://www.cveoy.top/t/topic/hwrV 著作权归作者所有。请勿转载和采集!