【场景】SQL账表常见报错
除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。
【SQL账表SQL】
select fbillno,fcreatedate from t_pur_poorder where fcreatedate >= '#InputDate#' order by fcreatedate
【分析】<1>开启SQL监控分析sql监控
<2>分析sql确实报错,平台会针对sql套一个壳,做分页行号rownumbder,因此原sql语句作为子查询,因此不能排序
【变通方案】如果需要按照sql直接查询得到结果(不套壳),应当勾选存储过程(即使不是存储过程也可以,最终的目的是直接执行得到数据结果)
【结论】如果需要按照sql直接查询得到结果(不套壳),应当勾选存储过程
【说明】普通sql的分页是由数据库实现,存储过程的分页是内存实现(一次查询所有)