我有一张有驼色列名的桌子(我现在深感遗憾)。如果在列名周围使用双引号作为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
不同一般来说,您应该远离引用的标识符。他们的麻烦比他们值得的多得多。如果你从不使用双引号,一切都会容易得多。