当列名为整数时,结果集出现问题



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

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

从用户名="我"的用户中选择 100;

然后rs.get string("100");此行给出错误

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

转义列名的标准 SQL 方法是括在双 qoutes 中。

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

大多数DBMS都支持此功能 - Oracle,PostgreSQL,MySQL,MSSQL和SQlite。

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

SQL Server - 方括号 []

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

MySQL - 反引号 ''

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

注意:

  • 双 qoutes 在 MSSQL 中充当转义保留字,当QUOTED_IDENTIFIER已打开。
  • 双 qoutes ac 作为转义保留字在 MySQL 中,如果它在 ANSI 中模式

所以对于MSSQL,先做

SET QUOTED_IDENTIFIER;

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

MS-SQL:

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

我的 SQL:

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

相关内容

  • 没有找到相关文章

最新更新