分页查询返回的结果集没有按照行号排序 返回

SqlSugar 沟通中
4 313
  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

返回的结果集

image.png

热忱回答4