HSQLDB 2.7.2中CASE表达式换行写法无法执行问题咨询
HSQLDB 2.7.2 多行CASE表达式执行失败的解决方法
这是HSQLDB 2.7.2版本的语法解析兼容性问题,针对多行书写的CASE表达式,你需要调整END关键字的缩进位置,让它与CASE关键字对齐,而非缩进在ELSE下方。
修改后的可运行脚本:
SELECT CASE col1 WHEN "1" THEN "one" ELSE "NOT" END FROM tab;
补充说明
- 缩进敏感原因:HSQLDB 2.7.2在解析多行
CASE表达式时,对关键字的换行和缩进位置要求严格。当END被缩进时,解析器无法正确识别它是CASE表达式的结束标记,进而触发语法错误;而单行写法结构紧凑,不会出现这个问题。 - 字符串常量规范:HSQLDB中双引号
"用于标识标识符(如列名、表名),如果你的"1"、"one"、"NOT"是字符串常量,建议改用SQL标准的单引号',避免与标识符混淆:
SELECT CASE col1 WHEN '1' THEN 'one' ELSE 'NOT' END FROM tab;
内容的提问来源于stack exchange,提问作者John Kraynack
相关产品推荐
相关产品推荐

