sql在数据库里面单独运行没有错,但在程序里面运行就报错:

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql在数据库里面单独运行没有错,但在程序里面运行就报错:相关的知识,希望对你有一定的参考价值。

syntax error, expect RPAREN, actual ON ON, pos 352

select A.uli_ecgi_eci_fv, A.user_num num1, A.num2, A.num3, B.num4, B.num5 from
(SELECT
A.uli_ecgi_eci_fv,
COUNT(A.mei_fv) user_num,
(CASE WHEN SUM(B.ttime)>20*60*60 and COUNT(A.mei_fv)>20 THEN '是' ELSE '否' END) num2 ,
(CASE WHEN SUM(B.ip1_len_fvSUM)>300*1000 THEN '是' ELSE '否' END) num3
FROM
tshark_mme_index A
LEFT JOIN 2G_flow B ON A.mei_fv = B.IMEI
GROUP BY
A.uli_ecgi_eci_fv) A
INNER JOIN
(SELECT
A.uli_ecgi_eci_fv,
COUNT(A.mei_fv) user_num,
(CASE WHEN SUM(B.ttime)>20*60*60 and COUNT(A.mei_fv)>20 THEN '是' ELSE '否' END) num4 ,
(CASE WHEN SUM(B.ip1_len_fvSUM)>300*1000 THEN '是' ELSE '否' END) num5
FROM
tshark_mme_index A
LEFT JOIN 3G_flow B ON A.mei_fv = B.IMEI
GROUP BY
A.uli_ecgi_eci_fv) B
ON A.uli_ecgi_eci_fv = B.uli_ecgi_eci_fv limit 0,20
com.alibaba.druid.sql.parser.ParserException: syntax error, expect RPAREN, actual ON ON, pos 352

有没有谁能帮我看看

如果送你是传入sql后用的exec执行的话,把
THEN '是' ELSE '否' END
改成
THEN ''是'' ELSE ''否'' END) ,
试试,
如果单独执行没问题,程序执行却有问题,那么有且只有这个地方有问题了!!追问

你说的这样我也试过,还是不行,但单独在数据库里面执行就是没有问题

参考技术A 跟踪下程序,输出下你要运行的sql,再去数据库里执行看看追问

就是上面那条sql,那条sql在数据库里面执行是没有错的

追答

应该是嵌套查询的问题,你可以把你后面2个表里的数据建立个临时表,将2部分数据存进去,在使用简单sql查询试试

以上是关于sql在数据库里面单独运行没有错,但在程序里面运行就报错:的主要内容,如果未能解决你的问题,请参考以下文章

java中sql语句能不能加分号的问题?

maven总是显示错误,程序能正常运行,就是显示错

C++程序在VS2010中可以运行 但是debug里面的可执行文件不能单独运行 而DEVC++则均可以 啥情况 求解答。

我拼接了一个sql,在数据库中sql语句可正确运行,但在java代码中报错,sql命令未正确结束。

python3 PyQt5 运行后界面控件缩在左上角,但在QTdesigner里面预览是正常的?

我在sql server 里面 运行一条SQL查询语句, 有时候要卡几钞钟才有结果,有时候一下就出结果了。