我有一个存储温度值的数据库,所以我的数据库的列名是100 150 200
现在问题是当我尝试在列名100下获取值时,它显示错误 我的查询看起来像
从用户中选择100,其中name ='me';
然后 rs.get string(“100”);这一行给出错误
任何人都可以建议我如何在这些类型的列名下检索值吗?
答案 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';
注意:
所以对于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';