分页查询返回的结果集没有按照行号排序 返回
SqlSugar
沟通中
4
313
悬赏:0 飞吻
var orderb ystr = "ORDER BY ISNULL(T0.[SaleTotalA],0) DESC";
var list = await query.Select((T0, T1) => new VIPSaleDetail
{
DocEntry = T0.DocEntry,
CardEntry = T1.DocEntry,
SaleCount = (T0.SaleCountA ?? 0),
SaleTotal = (T0.SaleTotalA ?? 0m),
VipName = (T0.Name ?? "未命名"),
HeaderUrl = T0.HeadImgURL,
PubEmp3 = T0.PubEmp3,
LastDay = SqlFunc.DateDiff(DateType.Day, T0.LastDate ?? T0.CreateDate, SqlFunc.GetDate()),
LastFUDay = SqlFunc.IsNull(SqlFunc.DateDiff(DateType.Day, SqlFunc.Subqueryable<VLOG>().Where(y => y.VipEntry == T0.DocEntry).Max(y => y.CreateDate), SqlFunc.GetDate()), -1),
LinkArray = T0.LinkKeyArray
}).OrderBy(orderbystr).ToPageListAsync(pagenum, pagesize, val2, val);生成的SQL
SELECT * FROM ( SELECT [T0].[DocEntry] AS [DocEntry], [T1].[DocEntry] AS [CardEntry], ISNULL([T0].[SaleCountA] ,0) AS [SaleCount], ISNULL([T0].[SaleTotalA] ,0) AS [SaleTotal], ISNULL([T0].[Name] ,'未命名') AS [VipName], [T0].[HeadImgURL] AS [HeaderUrl], [T0].[PubEmp3] AS [PubEmp3], DATEDIFF(DAY,ISNULL([T0].[LastDate],[T0].[CreateDate]),GETDATE()) AS [LastDay], ISNULL(DATEDIFF(DAY,(SELECT MAX ([CreateDate])FROM[VLOG]WHERE([VipEntry] = [T0].[DocEntry])),GETDATE()) ,0) AS [LastFUDay], [T0].[LinkKeyArray] AS [LinkArray], ROW_NUMBER () OVER (ORDER BY ISNULL(T0.[SaleTotalA],0) DESC) AS RowIndex FROM [OVIP] [T0] INNER JOIN [CRDS] [T1] ON ( [T0].[CardEntry] = [T1].[DocEntry]) WHERE (( [T0].[CardEntry] > 0 ) AND ( [T0].[PubEmp3] = '120') ) ) T WHERE RowIndex BETWEEN 1 AND 10
返回的结果集

热忱回答(4)
-
fate sta VIP0
2025/8/21tooffsetpage用这个
0 回复 -
鲜海洋 VIP0
2025/8/21@fate sta:好的
0 回复 -
fate sta VIP0
2025/8/21还有代码可以优化 , select().mregetable().Orderby
0 回复 -
fate sta VIP0
2025/8/21不需要写字符串
0 回复