不要注意所提供查询的无用性,它只是复杂问题的简化部分。
我运行查询:
SELECT elem FROM (SELECT id FROM data) AS elem;
产生结果:
elem
------
(5)
(4)
(24)
(3)
(23)
为什么每个值都括在括号中?
所以,为了解决这个问题,我做了:
SELECT trim(elem::text, ')(') FROM (SELECT id FROM data) AS elem;
我感觉不应该那样......
答案 0 :(得分:1)
SELECT elem.id FROM(SELECT id FROM data)AS elem;
答案 1 :(得分:1)
https://www.postgresql.org/docs/9.6/static/rowtypes.html#ROWTYPES-USAGE
在PostgreSQL中,对查询中的表名(或别名)的引用是 有效地引用表格当前的复合值 行
以及更进一步的查询示例,关于括号的进一步说明:
复合值的外部文本表示由 根据I / O转换规则解释的项目 各个字段类型,加上表示的字符 复合结构。装饰由括号组成((和)) 围绕整个值,加上相邻项之间的逗号(,)。
此处也有一些相关内容:https://www.postgresql.org/docs/current/static/sql-expressions.html#SQL-SYNTAX-ROW-CONSTRUCTORS
答案 2 :(得分:0)
您选择行。改为选择列:
SELECT elem FROM (SELECT id FROM data) AS tbl(elem);