postgresql - 在 postgresql where 子句中使用驼峰式列

标签 postgresql

我有一个带有驼峰式列名的表(我现在对此深表遗憾)。如果我在列名周围使用双引号作为 SELECT 子句的一部分,它们可以正常工作,例如从 the_table 中选择“myCamelCasedColumn”;。但是,如果我尝试在 WHERE 子句中执行相同的操作,则会出现错误。

例如,SELECT * FROM the_table WHERE "myCamelCasedColumn"= "hello"; 给我错误 column "hello"does not exist

我该如何解决这个问题?如果我不将该列括在双引号中,那么它只会提示 column mycamelcasedcolumn does not exist

最佳答案

在 SQL 中,字符串文字用单引号括起来,而不是双引号。

SELECT * 
FROM the_table 
WHERE "myCamelCasedColumn" = 'hello';

详见手册:
http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS

手册还解释了为什么 "myCamelCasedColumn" 在 SQL 中与 myCamelCasedColumn 不同


一般来说,您应该远离带引号的标识符。他们带来的麻烦多于他们的值(value)。如果您从不使用双引号,一切都会容易得多。

关于postgresql - 在 postgresql where 子句中使用驼峰式列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33566210/

相关文章:

postgresql - 基准 Amazon Redshift JSON_EXTRACT_PATH_TEXT

sql - 将同一表中的行分组为同一表中的一行

java - 右加入jpa

postgresql - 简单的 PostGIS XYZ 设置?

sql - 关于约束

postgresql - 连接未关闭(HikariCP、Postgres)

postgresql - 等待序列获取last_value

Spring Data JPA + Hibernate 跳过锁定行(PostgreSQL)

sql - 具有嵌套连接的表别名规则

django - 从 m2m 字段中获取一个对象指向自身的对象列表