Java 从H2中选择具有空格的列的列名

Java 从H2中选择具有空格的列的列名,java,sql,h2,Java,Sql,H2,我试图用H2和java从一个以制表符分隔的文件中进行查询。当我选择*时,没有问题,但是,其中一列的列名中有一个空格。当我尝试仅查询该列时,会出现一个异常: Caused by: org.h2.jdbc.JdbcSQLException: Column "EXAMPLE" not found; SQL statement: 它看起来好像不是同时抓取列名(示例ColumnName)中的两个单词,而是只抓取第一个单词 这就是我所拥有的: System.out.println( simpleJdbcT

我试图用H2和java从一个以制表符分隔的文件中进行查询。当我
选择*
时,没有问题,但是,其中一列的列名中有一个空格。当我尝试仅查询该列时,会出现一个异常:

Caused by: org.h2.jdbc.JdbcSQLException: Column "EXAMPLE" not found; SQL statement:
它看起来好像不是同时抓取列名(示例ColumnName)中的两个单词,而是只抓取第一个单词

这就是我所拥有的:

System.out.println( simpleJdbcTemplate.queryForList( "SELECT Example ColumnName FROM CSVREAD('" + fileName
                + "', null,'UTF-8', chr(9)) where send = 1;", new Object[] {} ) );
我猜有一种特殊的语法可以做到这一点,但我似乎找不到它。我试着用方括号、单引号、双引号、勾号将列名括起来,但都没有用

有没有一种方法可以使用名称中有空格的列来查询H2?

根据,双引号应该可以做到这一点。 记住在Java中正确地转义它们,也就是说,要将列名存储在
字符串中,请使用

String exampleColumnName = "\"Example ColumnName\"";
另外,请注意,它区分大小写,请参见文档:

引用的名称区分大小写


如果在连接属性中设置“MODE=MSSQLServer”,也可以使用方括号[]。例如:

SELECT * FROM [My Table]
连接字符串的外观如下所示:

jdbc:h2:~/test;MODE=MSSQLServer

猜猜看,你试过用双引号或括号吗?是的,我试过用方括号、单引号、双引号、勾号将列名括起来,但都没有用。Ug,我错过了区分大小写的部分!谢谢你找到医生,这很有帮助。