在PostgreSQL中使用SELECT查询加入一个列

时间:2012-12-06 13:24:36

标签: mysql sql postgresql

在这个MySQL query上对PostgreSQL需要这个等效的结果。

select id, 'ID1' from supportContacts

想法是加入一个包含表名的列,行值等于ID1。

在PostgreSQL上执行相同的查询会得到所需的行值,但会以?column? uknown作为列名。

哪个PostgreSQL查询会给出确切的输出?

2 个答案:

答案 0 :(得分:3)

添加列别名以分配您选择的名称。否则系统会应用默认值 要分配类型,请使用显式强制转换。我在这里投了text

SELECT id, 'ID1'::text AS "ID1" FROM supportContacts

或使用SQL标准cast()使其可移植:

SELECT id, cast('ID1' AS varchar) AS "ID1" FROM "supportContacts"

为了便于携带,请确保MySQL以SET sql_mode = 'ANSI'运行。

此外,像supportContacts这样的未加引号的CaMeL案例名称会在PostgreSQL中转换为小写。根据实际的表名,使用"supportContacts"supportcontacts

首先阅读优秀的手册here,了解有关标识符的基础知识。

答案 1 :(得分:0)

您可以在SQL Fiddle here

中找到答案