Sql 列名包含下划线时出现语法错误

Sql 列名包含下划线时出现语法错误,sql,postgresql,Sql,Postgresql,我可以编译但不能执行以下代码 出现错误时(使用Postgres): 这不是下划线,而是列名以数字开头。你需要逃避这个 对于MySQL,使用backticks select `20_5` as name from flowshop_optimums 对于SQL Server,请使用方括号 select [20_5] as name from flowshop_optimums 对于PostgreSQL,请使用双引号 select "20_5" as name from flowshop_op

我可以编译但不能执行以下代码 出现错误时(使用Postgres):



这不是下划线,而是列名以数字开头。你需要逃避这个

对于MySQL,使用backticks

select `20_5` as name from flowshop_optimums
对于SQL Server,请使用方括号

select [20_5] as name from flowshop_optimums
对于PostgreSQL,请使用双引号

select "20_5" as name from flowshop_optimums

试试这个:results=query.executeQuery(“从flowshop_optimums中选择'20_5'作为名称”)

根据您是否分别使用MySQL或SQLServer,您需要用反勾或括号将20_5括起来

results = query.executeQuery("select \"20_5\" as name from flowshop_optimums");

但您确实应该更改该列名称。

我尝试过,但它没有选择命名列,而是多次输出20μ5。20μ5就是您选择的。如果希望列的名称为20_5,则需要“从flowshop_optimums中选择'some value'作为20_5”。我的意思是该列的名称为20_5。我想从中选择值。对于反勾号,我得到:致命的数据库错误:在“`”位置或附近的语法错误:13。括号也是一样。@Oleksandr:您使用的是什么RDBMS?@Oleksandr:在这种情况下使用双引号。这是我用双引号(甚至无法编译)得到的结果:JDBCExample.java:49:')'预期结果=query.executeQuery(“从flowshop_optimums中选择“20_5”作为名称”)^java:49:nota语句results=query.executeQuery(“从flowshop_optimums中选择“20_5”作为名称”)^java:49:';'预期结果=query.executeQuery(“从flowshop_optimums中选择“20_5”作为名称”)^3错误您需要在双引号字符串中转义双引号。
select "20_5" as name from flowshop_optimums
results = query.executeQuery("select \"20_5\" as name from flowshop_optimums");