cilfm opened a new issue #10126: URL: https://github.com/apache/shardingsphere/issues/10126
## Bug Report **For English only**, other languages will not accept. Before report a bug, make sure you have: - Searched open and closed [GitHub issues](https://github.com/apache/shardingsphere/issues). - Read documentation: [ShardingSphere Doc](https://shardingsphere.apache.org/document/current/en/overview). Please pay attention on issues you submitted, because we maybe need more details. If no response anymore and we cannot reproduce it on current information, we will **close it**. Please answer these questions before submitting your issue. Thanks! ### Which version of ShardingSphere did you use? springboot 2.4.4 shardingsphere-jdbc-core-spring-boot-starter 5.0.0-alpha mybatis-plus-boot-starter 3.4.2 sql server 2008R2 ![Uploading image.png…]() ### Which project did you use? ShardingSphere-JDBC or ShardingSphere-Proxy? ShardingSphere-JDBC ### Expected behavior select ID,UserName,SignTime from ( select TOP(2) ROW_NUMBER() OVER(ORDER BY SignTime DESC) AS ridx, ID,UserName,SignTime FROM SMZ_ACCESSRECORD ) AS tmp where ridx > 0 order by SignTime This statement can be executed correctly and get the query result ### Actual behavior JDBC Connection [org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection@36df10d0] will not be managed by Spring ==> Preparing: select ID,UserName,SignTime from ( select TOP(2) ROW_NUMBER() OVER(ORDER BY SignTime DESC) AS ridx, ID,UserName,SignTime FROM SMZ_ACCESSRECORD ) AS tmp where ridx > 0 order by SignTime Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@40c898db] 2021-04-19 14:15:26.075 ERROR 6052 --- [p-nio-92-exec-1] c.a.q.temp.controller.TempSMZController : nested exception is org.apache.ibatis.executor.ExecutorException: Error preparing statement. Cause: org.antlr.v4.runtime.misc.ParseCancellationException org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: Error preparing statement. Cause: org.antlr.v4.runtime.misc.ParseCancellationException at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92) ~[mybatis-spring-2.0.3.jar:2.0.3] at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440) ~[mybatis-spring-2.0.3.jar:2.0.3] at com.sun.proxy.$Proxy77.selectList(Unknown Source) ~[na:na] at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223) ~[mybatis-spring-2.0.3.jar:2.0.3] at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:177) ~[mybatis-plus-core-3.3.1.tmp.jar:3.3.1.tmp] at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:78) ~[mybatis-plus-core-3.3.1.tmp.jar:3.3.1.tmp] at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:96) ~[mybatis-plus-core-3.3.1.tmp.jar:3.3.1.tmp] at com.sun.proxy.$Proxy166.list(Unknown Source) ~[na:na] at com.aecc.qdzhgd.temp.service.impl.smzEServiceImpl.list(smzEServiceImpl.java:32) ~[classes/:na] at com.aecc.qdzhgd.temp.service.impl.smzEServiceImpl$$FastClassBySpringCGLIB$$6e1d1ca2.invoke(<generated>) ~[classes/:na] at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.3.5.jar:5.3.5] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779) ~[spring-aop-5.3.5.jar:5.3.5] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.3.5.jar:5.3.5] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750) ~[spring-aop-5.3.5.jar:5.3.5] at com.baomidou.dynamic.datasource.aop.DynamicDataSourceAnnotationInterceptor.invoke(DynamicDataSourceAnnotationInterceptor.java:51) ~[dynamic-datasource-spring-boot-starter-3.2.1.jar:3.2.1] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.5.jar:5.3.5] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750) ~[spring-aop-5.3.5.jar:5.3.5] at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692) ~[spring-aop-5.3.5.jar:5.3.5] at com.aecc.qdzhgd.temp.service.impl.smzEServiceImpl$$EnhancerBySpringCGLIB$$91201382.list(<generated>) ~[classes/:na] at com.aecc.qdzhgd.temp.controller.TempSMZController.list2(TempSMZController.java:44) ~[classes/:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_271] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_271] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_271] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_271] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197) ~[spring-web-5.3.5.jar:5.3.5] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141) ~[spring-web-5.3.5.jar:5.3.5] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106) ~[spring-webmvc-5.3.5.jar:5.3.5] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894) ~[spring-webmvc-5.3.5.jar:5.3.5] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.5.jar:5.3.5] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.5.jar:5.3.5] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1060) ~[spring-webmvc-5.3.5.jar:5.3.5] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:962) ~[spring-webmvc-5.3.5.jar:5.3.5] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) [spring-webmvc-5.3.5.jar:5.3.5] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) [spring-webmvc-5.3.5.jar:5.3.5] at javax.servlet.http.HttpServlet.service(HttpServlet.java:626) [tomcat-embed-core-9.0.44.jar:4.0.FR] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) [spring-webmvc-5.3.5.jar:5.3.5] at javax.servlet.http.HttpServlet.service(HttpServlet.java:733) [tomcat-embed-core-9.0.44.jar:4.0.FR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) [tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) [tomcat-embed-websocket-9.0.44.jar:9.0.44] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.44.jar:9.0.44] at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) [spring-web-5.3.5.jar:5.3.5] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.5.jar:5.3.5] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.44.jar:9.0.44] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) [spring-web-5.3.5.jar:5.3.5] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.5.jar:5.3.5] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.44.jar:9.0.44] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) [spring-web-5.3.5.jar:5.3.5] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.5.jar:5.3.5] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.44.jar:9.0.44] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) [spring-web-5.3.5.jar:5.3.5] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.5.jar:5.3.5] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) [tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) [tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) [tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) [tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) [tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) [tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374) [tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) [tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1707) [tomcat-embed-core-9.0.44.jar:9.0.44] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-9.0.44.jar:9.0.44] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_271] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_271] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.44.jar:9.0.44] at java.lang.Thread.run(Thread.java:748) [na:1.8.0_271] Caused by: org.apache.ibatis.executor.ExecutorException: Error preparing statement. Cause: org.antlr.v4.runtime.misc.ParseCancellationException at org.apache.ibatis.executor.statement.BaseStatementHandler.prepare(BaseStatementHandler.java:97) ~[mybatis-3.5.3.jar:3.5.3] at org.apache.ibatis.executor.statement.RoutingStatementHandler.prepare(RoutingStatementHandler.java:59) ~[mybatis-3.5.3.jar:3.5.3] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_271] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_271] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_271] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_271] at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49) ~[mybatis-3.5.3.jar:3.5.3] at com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor.intercept(PaginationInterceptor.java:205) ~[mybatis-plus-extension-3.3.1.tmp.jar:3.3.1.tmp] at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61) ~[mybatis-3.5.3.jar:3.5.3] at com.sun.proxy.$Proxy91.prepare(Unknown Source) ~[na:na] at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.prepareStatement(MybatisSimpleExecutor.java:92) ~[mybatis-plus-core-3.3.1.tmp.jar:3.3.1.tmp] at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doQuery(MybatisSimpleExecutor.java:66) ~[mybatis-plus-core-3.3.1.tmp.jar:3.3.1.tmp] at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:324) ~[mybatis-3.5.3.jar:3.5.3] at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156) ~[mybatis-3.5.3.jar:3.5.3] at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:136) ~[mybatis-3.5.3.jar:3.5.3] at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147) ~[mybatis-3.5.3.jar:3.5.3] at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140) ~[mybatis-3.5.3.jar:3.5.3] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_271] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_271] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_271] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_271] at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426) ~[mybatis-spring-2.0.3.jar:2.0.3] ... 72 common frames omitted Caused by: org.antlr.v4.runtime.misc.ParseCancellationException: null at org.antlr.v4.runtime.BailErrorStrategy.recoverInline(BailErrorStrategy.java:66) ~[antlr4-runtime-4.7.2.jar:4.7.2] at org.antlr.v4.runtime.Parser.match(Parser.java:206) ~[antlr4-runtime-4.7.2.jar:4.7.2] at org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser.subquery(SQL92StatementParser.java:2907) ~[shardingsphere-sql-parser-sql92-5.0.0-alpha.jar:5.0.0-alpha] at org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser.tableFactor(SQL92StatementParser.java:2277) ~[shardingsphere-sql-parser-sql92-5.0.0-alpha.jar:5.0.0-alpha] at org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser.tableReference(SQL92StatementParser.java:2180) ~[shardingsphere-sql-parser-sql92-5.0.0-alpha.jar:5.0.0-alpha] at org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser.escapedTableReference(SQL92StatementParser.java:2122) ~[shardingsphere-sql-parser-sql92-5.0.0-alpha.jar:5.0.0-alpha] at org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser.tableReferences(SQL92StatementParser.java:2013) ~[shardingsphere-sql-parser-sql92-5.0.0-alpha.jar:5.0.0-alpha] at org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser.fromClause(SQL92StatementParser.java:1969) ~[shardingsphere-sql-parser-sql92-5.0.0-alpha.jar:5.0.0-alpha] at org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser.selectClause(SQL92StatementParser.java:1359) ~[shardingsphere-sql-parser-sql92-5.0.0-alpha.jar:5.0.0-alpha] at org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser.unionClause(SQL92StatementParser.java:1248) ~[shardingsphere-sql-parser-sql92-5.0.0-alpha.jar:5.0.0-alpha] at org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser.select(SQL92StatementParser.java:1200) ~[shardingsphere-sql-parser-sql92-5.0.0-alpha.jar:5.0.0-alpha] at org.apache.shardingsphere.sql.parser.autogen.SQL92StatementParser.execute(SQL92StatementParser.java:362) ~[shardingsphere-sql-parser-sql92-5.0.0-alpha.jar:5.0.0-alpha] at org.apache.shardingsphere.sql.parser.sql92.parser.SQL92Parser.parse(SQL92Parser.java:37) ~[shardingsphere-sql-parser-sql92-5.0.0-alpha.jar:5.0.0-alpha] at org.apache.shardingsphere.sql.parser.core.parser.SQLParserExecutor.twoPhaseParse(SQLParserExecutor.java:84) ~[shardingsphere-sql-parser-engine-5.0.0-alpha.jar:5.0.0-alpha] at org.apache.shardingsphere.sql.parser.core.parser.SQLParserExecutor.parse(SQLParserExecutor.java:59) ~[shardingsphere-sql-parser-engine-5.0.0-alpha.jar:5.0.0-alpha] at org.apache.shardingsphere.sql.parser.core.parser.SQLParserExecutor.parse(SQLParserExecutor.java:53) ~[shardingsphere-sql-parser-engine-5.0.0-alpha.jar:5.0.0-alpha] at org.apache.shardingsphere.sql.parser.api.SQLParserEngine.parse(SQLParserEngine.java:46) ~[shardingsphere-sql-parser-engine-5.0.0-alpha.jar:5.0.0-alpha] at org.apache.shardingsphere.infra.parser.sql.SQLStatementParserEngine.parse(SQLStatementParserEngine.java:65) ~[shardingsphere-infra-parser-5.0.0-alpha.jar:5.0.0-alpha] at org.apache.shardingsphere.infra.parser.sql.SQLStatementParserEngine.parse(SQLStatementParserEngine.java:59) ~[shardingsphere-infra-parser-5.0.0-alpha.jar:5.0.0-alpha] at org.apache.shardingsphere.infra.parser.ShardingSphereSQLParserEngine.parse0(ShardingSphereSQLParserEngine.java:74) ~[shardingsphere-infra-parser-5.0.0-alpha.jar:5.0.0-alpha] at org.apache.shardingsphere.infra.parser.ShardingSphereSQLParserEngine.parse(ShardingSphereSQLParserEngine.java:60) ~[shardingsphere-infra-parser-5.0.0-alpha.jar:5.0.0-alpha] at org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement.<init>(ShardingSpherePreparedStatement.java:142) ~[shardingsphere-jdbc-core-5.0.0-alpha.jar:5.0.0-alpha] at org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement.<init>(ShardingSpherePreparedStatement.java:115) ~[shardingsphere-jdbc-core-5.0.0-alpha.jar:5.0.0-alpha] at org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection.prepareStatement(ShardingSphereConnection.java:80) ~[shardingsphere-jdbc-core-5.0.0-alpha.jar:5.0.0-alpha] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_271] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_271] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_271] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_271] at org.apache.ibatis.logging.jdbc.ConnectionLogger.invoke(ConnectionLogger.java:55) ~[mybatis-3.5.3.jar:3.5.3] at com.sun.proxy.$Proxy92.prepareStatement(Unknown Source) ~[na:na] at org.apache.ibatis.executor.statement.PreparedStatementHandler.instantiateStatement(PreparedStatementHandler.java:86) ~[mybatis-3.5.3.jar:3.5.3] at org.apache.ibatis.executor.statement.BaseStatementHandler.prepare(BaseStatementHandler.java:88) ~[mybatis-3.5.3.jar:3.5.3] ... 93 common frames omitted Caused by: org.antlr.v4.runtime.InputMismatchException: null at org.antlr.v4.runtime.BailErrorStrategy.recoverInline(BailErrorStrategy.java:61) ~[antlr4-runtime-4.7.2.jar:4.7.2] ... 124 common frames omitted 2021-04-19 14:15:26.077 WARN 6052 --- [p-nio-92-exec-1] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: Error preparing statement. Cause: org.antlr.v4.runtime.misc.ParseCancellationException] ### Reason analyze (If you can) SqlParse? ROW_NUMBER? ### Steps to reproduce the behavior, such as: SQL to execute, sharding rule configuration, when exception occur etc. if I remove ROW_NUMBER() OVER() statement,it is ok,like this: select ID,UserName,SignTime from ( select TOP(2) <!-- ROW_NUMBER() OVER(ORDER BY SignTime DESC) AS ridx, --> ID,UserName,SignTime FROM SMZ_ACCESSRECORD ) AS tmp order by SignTime ,and then,I change the statement like this: select TOP(2) ROW_NUMBER() OVER(ORDER BY SignTime DESC) AS ridx,ID,UserName,SignTime FROM SMZ_ACCESSRECORD This is not working properly. Another error message appears: Logical table does not recognize substitution properly,next is error message: ### SQL: select TOP(2) ROW_NUMBER() OVER(ORDER BY SignTime DESC) AS ridx,ID,UserName,SignTime FROM SMZ_ACCESSRECORD ### Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 对象名 'SMZ_ACCESSRECORD' 无效。 ; bad SQL grammar []; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 对象名 'SMZ_ACCESSRECORD' 无效。] ### Example codes for reproduce this issue (such as a github link). -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org