Java 带有SpringJDBC模板的Sql服务器

Java 带有SpringJDBC模板的Sql服务器,java,sql-server,sql-server-2008,jdbctemplate,spring-jdbc,Java,Sql Server,Sql Server 2008,Jdbctemplate,Spring Jdbc,我需要使用SpringJDBC模板连接到SQLServer2008和2012版本 在数据库中,我们有一个带有空格的列,我尝试了使用带有空格的换行列,但没有用。使用查询时发生以下错误 SELECT Mon, CC Flag FROM (SELECT *, ROW_NUMBER() OVER (ORDER BY Msisdn)AS RowNum FROM ME_PREPAID) AS MyDerivedTable WHERE MyDerivedTable.RowNum BETWEEN 2 AND 1

我需要使用SpringJDBC模板连接到SQLServer2008和2012版本

在数据库中,我们有一个带有空格的列,我尝试了使用带有空格的换行列,但没有用。使用查询时发生以下错误

SELECT Mon, CC Flag FROM (SELECT *, ROW_NUMBER() OVER (ORDER BY Msisdn)AS RowNum FROM ME_PREPAID) AS MyDerivedTable WHERE MyDerivedTable.RowNum BETWEEN 2 AND 100
com.microsoft.sqlserver.jdbc.SQLServerException:列名无效 “抄送”

请注意,有一列为
CC-Flag


如何解决此问题?

您可以尝试以下SQL字符串:

String sql = "SELECT Mon, \"CC Flag\" FROM (SELECT *, ROW_NUMBER() OVER (ORDER BY Msisdn)AS RowNum FROM ME_PREPAID) AS MyDerivedTable WHERE MyDerivedTable.RowNum BETWEEN 2 AND 100";

最后,我找到了这个问题的解决方案。我用的是这样的
[列名]
。它很好用。我已经试过了。但是在编程时,将列名与列表匹配时出现了一个错误。我使用了一个数组列表,其值为
[Mon],[CC-Flag]

mylist.add="[Mon]";   mylist.add="[CC Flag]";
然后我将这个列表传递给查询。当我将列名称与列表匹配时,出现了一个错误。以下是正确答案

SELECT [Mon], [CC Flag] FROM (SELECT *, ROW_NUMBER() OVER (ORDER BY Msisdn)AS RowNum FROM ME_PREPAID) AS MyDerivedTable WHERE MyDerivedTable.RowNum BETWEEN 2 AND 100

你查过了吗。。可能是
CC\u-Flag
@VishalK:数据库中有一列为
CC-Flag
,而不是
CC\u-Flag
。我已经试过了,它不适用于spring jdbc模板。我给了你这个答案。