首页 >Quick BI的数据源是SQL Server,使用SQL创建数据集报错“数据源执行SQL失败:INTERNAL: java.lang.RuntimeException: SQL execute error by datasource... com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near the keyword 'ORDER'. ”

Quick BI的数据源是SQL Server,使用SQL创建数据集报错“数据源执行SQL失败:INTERNAL: java.lang.RuntimeException: SQL execute error by datasource... com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near the keyword 'ORDER'. ”

问题描述

本文描述了Quick BI的数据源是SQL Server,使用SQL创建数据集报错“数据源执行SQL失败:INTERNAL: java.lang.RuntimeException: SQL execute error by datasource... com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near the keyword 'ORDER'. ”的解决方法。

报错信息如下:

traceId:526801e5-96b2-406e-a114-df4ff6dcd2aa;
errMsg:数据源执行SQL失败:INTERNAL: java.lang.RuntimeException: SQL execute error by datasource...
com.microsoft.sqlserver.jdbc.SQLServerException:
Incorrect syntax near the keyword 'ORDER'.
com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)
com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1515)
com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:792)
com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:689)
com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696) 

SQL在数据库中可以正常执行:

问题原因

Quick BI执行查询会在外面加一个select * from () ,将您的查询变成子查询。

解决方案

将SQL中的order by排序去掉, 在数据集上设置排序。

适用于

  • Quick BI
  • v.4.3
阿里云首页 相关技术圈