我有一个带有驼峰式列名的表(我现在对此深表遗憾)。如果我在列名周围使用双引号作为 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/