Postgres中如何查询名称包含双引号的列?
如何查询列名包含双引号的数据库表
不同数据库对带特殊字符的列名处理规则不一样,针对列名本身包含双引号(比如列名是"Market")的情况,按以下方式处理:
MySQL/MariaDB
用反引号(`)把整个带双引号的列名包裹起来,这是MySQL识别特殊标识符的标准方式:
SELECT `"Market"` FROM mytable;
PostgreSQL/Oracle
这类数据库默认支持用双引号作为标识符的包裹符,内部的双引号需要用两个双引号转义(表示一个实际的双引号):
SELECT """Market""" FROM mytable;
SQL Server
除了可以用双引号转义的方式,还可以直接用方括号包裹整个列名,更简单:
SELECT ["Market"] FROM mytable;
为什么你的原语句不生效?
你之前写的SELECT "\"Market\"" FROM mytable;是把"Market"作为字符串常量查询,而不是作为列名,数据库会返回这个固定字符串,而不是对应列的数据,所以无法得到预期结果。
内容的提问来源于stack exchange,提问作者Pithikos
相关产品推荐
相关产品推荐

