SQL

SELECT SUM(IF(1=1,1,0)) AS `result` FROM sys_user

这种会报错的。

错误信息

Caused by: net.sf.jsqlparser.JSQLParserException: null

at net.sf.jsqlparser.parser.CCJSqlParserUtil.parseStatements(CCJSqlParserUtil.java:154)

at com.baomidou.mybatisplus.core.parser.AbstractJsqlParser.parser(AbstractJsqlParser.java:64)

... 92 common frames omitted

Caused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "(" "("

at line 10, column 19.

Was expecting one of:

"&"

","

"::"

";"

"<<"

">>"

"ACTION"

"ANY"

"AS"

"BYTE"

"CASCADE"

"CAST"

"CHAR"

"COLUMN"

"COMMIT"

"CONNECT"

"DO"

"ENABLE"

"END"

"EXCEPT"

"EXTRACT"

"FIRST"

"FOLLOWING"

"FOR"

"FROM"

"GROUP"

"HAVING"

"INDEX"

"INSERT"

"INTERSECT"

"INTERVAL"

"INTO"

"ISNULL"

"KEY"

"LAST"

"MATERIALIZED"

"MINUS"

"NO"

"NULLS"

"OPEN"

"ORDER"

"OVER"

"PARTITION"

"PERCENT"

"PRECISION"

"PRIMARY"

"PRIOR"

"RANGE"

"REPLACE"

"ROW"

"ROWS"

"SEPARATOR"

"SIBLINGS"

"START"

"TABLE"

"TEMP"

"TEMPORARY"

"TRUNCATE"

"UNION"

"UNSIGNED"

"VALUE"

"VALUES"

"WHERE"

"XML"

"ZONE"

"^"

"|"



<K_DATETIMELITERAL>

<S_CHAR_LITERAL>

<S_IDENTIFIER>

<S_QUOTED_IDENTIFIER>

at net.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:18597)

at net.sf.jsqlparser.parser.CCJSqlParser.jj_consume_token(CCJSqlParser.java:18447)

at net.sf.jsqlparser.parser.CCJSqlParser.Statements(CCJSqlParser.java:516)

at net.sf.jsqlparser.parser.CCJSqlParserUtil.parseStatements(CCJSqlParserUtil.java:152)

... 93 common frames omitted

解决办法

将IF换成case when的形式

JSqlParser解析SQL时SUM包裹IF出错的更多相关文章

  1. 使用JSQLParser解析SQL中涉及到的表

    首先添加Maven依赖: <dependency> <groupId>com.github.jsqlparser</groupId> <artifactId& ...

  2. Sql 问题---在尝试加载程序集 ID 65537 时 Microsoft .NET Framework 出错.服务器可能资源不足

    新库是直接复制的模板库 执行存储过程时报如下错 消息 10314,级别 16,状态 11,过程sp_Sync_CmsArticleToSearchs,第 30 行在尝试加载程序集 ID 65645 时 ...

  3. 淘宝数据库OceanBase SQL编译器部分 源代码阅读--解析SQL语法树

    OceanBase是阿里巴巴集团自主研发的可扩展的关系型数据库,实现了跨行跨表的事务,支持数千亿条记录.数百TB数据上的SQL操作. 在阿里巴巴集团下,OceanBase数据库支持了多个重要业务的数据 ...

  4. 《淘宝数据库OceanBase SQL编译器部分 源码阅读--解析SQL语法树》

    淘宝数据库OceanBase SQL编译器部分 源码阅读--解析SQL语法树   曾经的学渣 2014-06-05 18:38:00 浏览1455 云数据库Oceanbase   OceanBase是 ...

  5. 30分钟全面解析-SQL事务+隔离级别+阻塞+死锁

    以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化.  本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...

  6. 深入解析SQL Server并行执行原理及实践(上)

    在成熟领先的企业级数据库系统中,并行查询可以说是一大利器,在某些场景下他可以显著的提升查询的相应时间,提升用户体验.如SQL Server, Oracle等, Mysql目前还未实现,而Postgre ...

  7. LINQ to SQL Count/Sum/Min/Max/Avg Join

    public class Linq { MXSICEDataContext Db = new MXSICEDataContext(); // LINQ to SQL // Count/Sum/Min/ ...

  8. atitit.java解析sql语言解析器解释器的实现

    atitit.java解析sql语言解析器解释器的实现 1. 解析sql的本质:实现一个4gl dsl编程语言的编译器 1 2. 解析sql的主要的流程,词法分析,而后进行语法分析,语义分析,构建sq ...

  9. 解析sql中的表名

    最近的项目需求中需要解析sql得表名,由于只需要表名我觉得应该用相对粗暴一点的方式来解析 初步思路: 1.转义字符:去除两个引号连在一起的 2.字符串: 去除所有被引号包裹的 3.括号:识别括号处理 ...

  10. sqlserver 在尝试加载程序集 ID 65537 时 Microsoft .NET Framework 出错.服务器可能资源不足

    报错信息: 处理报表时出错. 对数据集“query”执行查询失败. 在尝试加载程序集 ID 65536 时 Microsoft .NET Framework 出错.服务器可能资源不足,或者不信任该程序 ...

随机推荐

  1. linux 下安装部署redis

    安装: 1.获取redis资源   wget http://download.redis.io/releases/redis-4.0.8.tar.gz 2.解压   tar xzvf redis-4. ...

  2. Visual Studio 2022(VS2022) 产品密钥

    Visual Studio 2022(VS2022) 激活码: Pro: TD244-P4NB7-YQ6XK-Y8MMM-YWV2JEnterprise: VHF9H-NXBBB-638P6-6JHC ...

  3. Cocoapods的简单介绍和使用

    1.Cocoapods运行环境和gem命令 1.1 Ruby运行环境和gem命令 Mac自带Ruby环境.如果gem版本太旧,可以使用以下指令升级到最新: sudo gem update --syst ...

  4. centos6.x配置虚拟主机名及域名hosts

    我们在本地安装了centos或者虚拟主机上安装了centos,主机名称默认是localhost,这样我们可以使用localhost访问我们的主机,在终端命令里默认的是[root@localhost ~ ...

  5. [AGC013B] Hamiltonish Path

    个人思路: 随便从一个节点开始搜索,只要当前节点不满足条件,随便找一个与它有边相连,不在序列里的节点加入序列.因为要么中途停止,要么把所有节点遍历一遍,一定能找到一个端点. 我们直接从节点 \(1\) ...

  6. Jmeter的简单配置和使用

    对于测试大佬来说,最常见的压测工具莫过于Apache旗下的 JMeter . 那么测试大佬经常使用,对于我们后端开发者来说,也是属于必备的一个技能. 接下来咱们就一起简单的配置一下烫手的jmeter ...

  7. 基于工业5G网关的建筑机器人应用

    建筑行业是世界上数字化程度最低.自动化程度最低的行业之一.近百年来,虽然技术革新不断,建筑本身的形态和功能也大不相同,但建筑施工的业态形式却始终没有出现显著的变化. 随着人口红利的消失,中国的建筑业面 ...

  8. 国内 IoT 物联网平台终局的思考:未来只会有 3家

    随着物联网成为国家十四五规划的新型基础设施,许多企业纷纷投资物联网赛道,希望能提前布局物联网平台,打造一个新的生态出来. 十年后,那些投入重金的物联网平台最终能存活下来几家呢? 01. 公有云IoT平 ...

  9. CPU密集型和IO密集型与线程池的配置

    CPU密集型任务应配置尽可能小的线程,如配置CPU数目+1个线程的线程池.由于IO密集型任务线程并不是一直在执行任务,则应配置尽可能多的线程,如2*CPU数目.

  10. kubectl使用方法及常用命令小结

    Kubectl 是一个命令行接口,用于对 Kubernetes 集群运行命令.kubectl 在 $HOME/.kube 目录中寻找一个名为 config 的文件. kubectl安装方法详见:htt ...