当前使用版本(必填,否则不予处理)

3.4.3.1

该问题是如何引起的?(确定最新版也有问题再提!!!)

分页排序获取数据总数时的排序引起

重现步骤(如果有就写完整)

例如xml 中执行sql select orderMain.FID as id, orderMain.FBillno as orderNumber, orderMain.FContractNo as contractNumber, orderMain.FXSDQ_Name as salesRegionName, orderMain.FCustomer_Name as customerName, orderMain.FYWY_Name as salesmanName, orderMain.FLinkMan as consigneeName, orderMain.FLinkManPhone as consigneeMobile, orderMain.FJHDD as receivingAddressName, orderMain.FLinkManAddr as detailedAddress, orderMain.FIsKP as billing, orderMain.FOrderSum as orderAmount, orderMain.FOld as oldOrder, orderMain.FDate as fdate, ISNULL(review.doc_status,'-1') as processStatus from LB_DB_OrderOnline orderMain left join [192.168.100.53].ekp.dbo.ekp_LB_LC_DBXSDD lblc on orderMain.FBillno=lblc.fd_DDBH left join [192.168.100.53].ekp.dbo.km_review_main review on lblc.fd_id=review.fd_id where orderMain.FOld='0' and orderMain.FBillno not like '%test%' and orderMain.FOperatorId=13665 order by orderMain.FDate desc 这条语句是可以正常执行的,但是在分页第一步获取总数时,会自动执行的sql如下: SELECT COUNT(*) FROM (select orderMain.FID as id, orderMain.FBillno as orderNumber, orderMain.FContractNo as contractNumber, orderMain.FXSDQ_Name as salesRegionName, orderMain.FCustomer_Name as customerName, orderMain.FYWY_Name as salesmanName, orderMain.FLinkMan as consigneeName, orderMain.FLinkManPhone as consigneeMobile, orderMain.FJHDD as receivingAddressName, orderMain.FLinkManAddr as detailedAddress, orderMain.FIsKP as billing, orderMain.FOrderSum as orderAmount, orderMain.FOld as oldOrder, orderMain.FDate as fdate, ISNULL(review.doc_status, '-1') as processStatus
from LB_DB_OrderOnline orderMain
left join [192.168.100.53].ekp.dbo.ekp_LB_LC_DBXSDD lblc on orderMain.FBillno=lblc.fd_DDBH
left join [192.168.100.53].ekp.dbo.km_review_main review on lblc.fd_id=review.fd_id
where orderMain.FOld='0' and orderMain.FBillno not like '%test%'
and orderMain.FOperatorId=13665
order by orderMain.FDate desc) TOTAL 这条语句在SQLserver中是无法执行的,正确的做法应该是在获取总数时将order by 去掉,再真正获取分页数据查询时加上

报错信息

除非另外还指定了 TOP、OFFSET 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。

Comment From: fye1234

我也遇到了同样的问题。

Comment From: qmdx

自定义 count sql