DB2中查询名称与SQL关键字相同的表字段的问题问询
你使用的方括号[]是SQL Server等数据库的标识符转义语法,并不适用于DB2,因此查询执行失败。
DB2中转义与保留关键字重名的标识符的正确方法
默认配置场景
DB2默认使用双引号"作为标识符转义符,注意转义时的字段名大小写需要和建表时的存储大小写完全匹配:
- 如果你建表时没有特意指定列名大小写,DB2默认会将标识符转换为大写存储,对应查询语句为:
SELECT "UNION" FROM 你的表名;
- 如果你建表时特意用双引号包裹指定了小写的
union作为列名,对应查询语句为:
SELECT "union" FROM 你的表名;
兼容模式场景
如果你的DB2实例开启了非默认的兼容模式支持反引号转义,也可以使用如下语句:
SELECT `union` FROM 你的表名;
建议:后续建表时尽量避免使用SQL保留关键字作为表名、列名,减少不必要的转义操作。如果无法确定列名的实际存储大小写,可以先执行
DESCRIBE 你的表名语句查看列的元数据信息,再对应调整转义后的列名字母大小写。
内容的提问来源于stack exchange,提问作者user2914171
相关产品推荐
相关产品推荐

