我有一张有驼色列名的桌子(我现在深感遗憾)。如果在列名周围使用双引号作为SELECT子句的一部分,它们可以正常工作,例如SELECT "myCamelCasedColumn" FROM the_table;。但是,如果我尝试在WHERE子句中执行同样的操作,则会得到一个错误。
例如,SELECT * FROM the_table WHERE "myCamelCasedColumn" = "hello";给出了错误。
我怎么能避开这个?如果我没有用双引号将该列括起来,那么它只会抱怨column "hello" 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不同
一般来说,您应该远离引用的标识符。他们的麻烦比他们值得的多得多。如果你从不使用双引号,一切都会容易得多。

07-26 06:10