为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: DB Version: 0x7000a
【操作系统】:windows
【CPU】:
【问题描述】*:SQL执行在版本DB Version: 0x7000a执行报错,在DB ersion: 0x7000c版本执行正确。能帮忙确认修复版本么?
SELECT CASE
WHEN 'zh_CN'='zh_CN' THEN CASE WHEN ga."ISMOBILE"=0 THEN '电脑登录' ELSE '移动端登录' END
ELSE CASE WHEN ga."ISMOBILE"=0 THEN 'pc login' ELSE 'mobile login' END
END as "login"
FROM "GOPERATION" ga
INNER JOIN (
SELECT npath."DASHBOARDID" as id, npath."DASHBOARD" as "DASHBOARD_NEW"
FROM "GOPERATION" npath
INNER JOIN (
SELECT MAX(g."ACTIONTS") as "ACTIONTS", g."DASHBOARDID" as "DASHBOARDID"
FROM "GOPERATION" g
GROUP BY g."DASHBOARDID"
) gm
ON npath."DASHBOARDID" = gm."DASHBOARDID"
AND npath."ACTIONTS" = gm."ACTIONTS"
) gb
ON ga."DASHBOARDID" = gb.id
WHERE CASE
WHEN 'zh_CN'='zh_CN' THEN CASE WHEN ga."ISMOBILE"=0 THEN '电脑登录' ELSE '移动端登录' END
ELSE CASE WHEN ga."ISMOBILE"=0 THEN 'pc login' ELSE 'mobile login' END
END IS NOT NULL
GROUP BY CASE
WHEN 'zh_CN'='zh_CN' THEN CASE WHEN ga."ISMOBILE"=0 THEN '电脑登录' ELSE '移动端登录' END
ELSE CASE WHEN ga."ISMOBILE"=0 THEN 'pc login' ELSE 'mobile login' END
END
ORDER BY 1 ASC
LIMIT 500000
m.jdbc.driver.DMException: 第27 行附近出现错误:
无效的ORDER BY子句
at dm.jdbc.driver.DBError.throwException(DBError.java:635) ~[?:?]
at dm.jdbc.c.b.n.R(MSG.java:222) ~[?:?]
at dm.jdbc.c.b.n.O(MSG.java:182) ~[?:?]
at dm.jdbc.c.b.n.N(MSG.java:162) ~[?:?]
at dm.jdbc.c.a.a(DBAccess.java:892) ~[?:?]
at dm.jdbc.c.a.a(DBAccess.java:319) ~[?:?]
at dm.jdbc.driver.DmdbPreparedStatement.prepareSql(DmdbPreparedStatement.java:141) ~[?:?]
at dm.jdbc.driver.DmdbPreparedStatement.<init>(DmdbPreparedStatement.java:120) ~[?:?]
at dm.jdbc.driver.DmdbConnection.do_prepareStatement(DmdbConnection.java:717) ~[?:?]
at dm.jdbc.driver.DmdbConnection.do_prepareStatement(DmdbConnection.java:703) ~[?:?]
at dm.jdbc.driver.DmdbConnection.prepareStatement(DmdbConnection.java:1303) ~[?:?]
order by中的列,应该出现在group by子句中。