我需要使用spring jdbc模板连接到sql server 2008和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'。
请注意,列为CC Flag
我该如何解决这个问题?
答案 0 :(得分:1)
您可以尝试使用此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";
答案 1 :(得分:0)
最后,我找到了这个问题的解决方案。我像这样用[column name]
。它工作正常。我已经尝过这样的了。但是在将列名与列表匹配时编程出错了。我使用了值为[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