在这个MySQL query上对PostgreSQL需要这个等效的结果。
select id, 'ID1' from supportContacts
想法是加入一个包含表名的列,行值等于ID1。
在PostgreSQL上执行相同的查询会得到所需的行值,但会以?column? uknown
作为列名。
哪个PostgreSQL查询会给出确切的输出?
答案 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
中找到答案