当列名是整数时,resultset会出现问题

时间:2014-02-26 12:59:42

标签: sql resultset

我有一个存储温度值的数据库,所以我的数据库的列名是100 150 200

现在问题是当我尝试在列名100下获取值时,它显示错误 我的查询看起来像

从用户中选择100,其中name ='me';

然后 rs.get string(“100”);这一行给出错误

任何人都可以建议我如何在这些类型的列名下检索值吗?

2 个答案:

答案 0 :(得分:2)

转义列名称的标准SQL方法是包含在 double qoutes 中。

SELECT "100" from user where name='me';

大多数DBMS都支持这种方式 - Oracle,PostgreSQL,MySQL,MSSQL和SQlite。

除此之外,还有数据库特定的方法来转义列名

SQL Server - 方括号[]

SELECT [100] from user where name='me';

MySQL - 反击“`

SELECT `100` from user where name='me';

注意:

  • Double qoutes在 MSSQL 时用作转义保留字 QUOTED_IDENTIFIER已开启。
  • 如果它是ANSI,请将 ^ 中的保留字转换为q 模式

所以对于MSSQL,先做

SET QUOTED_IDENTIFIER;

答案 1 :(得分:1)

如果您的查询使用任何关键字或数字列名称,则使用[]表示MS-SQL,并使用``表示MySQL。

MS-SQL:

Select [100] from user where name='me';

MY-SQL:

Select `100` from user where name='me';