在这个 MySQL查询上需要 PostgreSQL 上的等效结果。
select id, 'ID1' from supportContacts
想法是加入一个表名和行值等于 ID1 的列。
在 PostgreSQL 上执行相同的查询会给出所需的行值,但会给出 ?column? uknown
列名。
哪个 PostgreSQL 查询会给出准确的输出?
在这个 MySQL查询上需要 PostgreSQL 上的等效结果。
select id, 'ID1' from supportContacts
想法是加入一个表名和行值等于 ID1 的列。
在 PostgreSQL 上执行相同的查询会给出所需的行值,但会给出 ?column? uknown
列名。
哪个 PostgreSQL 查询会给出准确的输出?
添加列别名以分配您选择的名称。否则系统将应用默认值。
要分配类型,请使用显式强制转换。我投到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'
.
此外,在 PostgreSQL 中,未加引号的 CaMeL 大小写名称如supportContacts
转换为小写。使用"supportContacts"
或supportcontacts
取决于实际的表名。
首先阅读这里的优秀手册,了解有关标识符的基础知识。
你可以在这里找到 SQL Fiddle 的答案