在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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录