在postgres中进行硬编码选择

时间:2018-11-08 02:42:43

标签: sql postgresql

有人可以告诉我为什么它在MySQL中有效但在PostgreSQL中无效吗?

select "hi" as ham, 1 as eggs

我正在尝试将查询与一些硬编码的值结合在一起。

Postgres说“错误:列“ hi”不存在位置:8”

MySQL说正确的话。

3 个答案:

答案 0 :(得分:1)

您需要在转换后将“更改为'double qoute更改为single qoute

select 'hi' as ham, 1 as eggs

答案 1 :(得分:1)

您需要使用单引号,而不是双引号。

Select 'hi' as ham;

答案 2 :(得分:1)

如果要让hi为行值,则需要使用single-qoute,否则PostgreSQL DB Engine会将其作为列。

此示例ORDER是一个关键字,但我不鼓励使用double-qoute将关键字作为列名转义,尽管我不鼓励使用关键字作为列名。

CREATE TABLE T("ORDER" INT);

INSERT INTO T VALUES (1);

SELECT "ORDER"
FROM T

sqlfiddle

所以您可能会这样使用。

select 'hi' as ham, 1 as eggs