SQL语句中的语法错误-H2错误42001

SQL语句中的语法错误-H2错误42001,sql,h2,Sql,H2,运行此SQL语句时: 选择时间间隔, (((计时器*60)/1.0)*100)/((10.0*60)/60.0))作为“吞吐量运行1\u 8\u 11” 来自StatExternalData、StatisticDefinition 其中StatisticDefinition.ID=StatExternalData.StatDefId 和StatisticName='PSI'u CompTran'u Successful' 按时间间隔订购asc 我得到这个错误: “从StateExternalD

运行此SQL语句时:

选择时间间隔,
(((计时器*60)/1.0)*100)/((10.0*60)/60.0))作为“吞吐量运行1\u 8\u 11”
来自StatExternalData、StatisticDefinition
其中StatisticDefinition.ID=StatExternalData.StatDefId
和StatisticName='PSI'u CompTran'u Successful'
按时间间隔订购asc
我得到这个错误:

“从StateExternalData、StatisticDefinition中选择时间间隔,(((Timer*60)/1.0)*100)/((10.0*60)/60.0))作为“吞吐量-运行”[*],其中StatisticDefinition.ID=stateExternalData.StatDefId和StatisticName='PSI\u CompTran\u Successful\u Cnt'按时间间隔asc排序”;
预期的“标识符”;[42001-185]
我发现[*]表示语句的哪一部分不正确,H2错误代码42001表示SQL语句无效,但我数周来一直在绞尽脑汁试图找出问题所在,有人知道吗?

我也有同样的问题:

我的实体看起来像这样:

@Entity
public class ShopCommentRating {

@NotNull
private Boolean like;

}
@Entity
public class ShopCommentRating {

@NotNull
private Boolean commentLike;

}
结果查询包含一个[*]

要删除错误,我必须将字段名更改为如下内容:

@Entity
public class ShopCommentRating {

@NotNull
private Boolean like;

}
@Entity
public class ShopCommentRating {

@NotNull
private Boolean commentLike;

}

“小写camel case”名称

对于42001-197,您还可以检查Oracle分析函数和H2版本,这需要从1.4.198开始,尤其是分区上的行号。

您是否尝试过将列别名括在双引号之间而不是单引号(
),尽量避免使用破折号
-
。尝试
throughts\u run\u 1\u 8\u 11
而不是
throughts-run\u 1\u 8\u 11
,因为“throughts-run\u 1\u 8\u 11”是无效的SQL。单引号用于字符串文本。双引号用于标识感谢barranka abd a_horse_没有名字,这就是问题所在!在您的情况下,“like”是保留的SQL字。任何其他名称都可以。如果你真的必须使用保留关键字作为列名(我不建议这样做),你也可以使用列名。