在Postgre,为什么
select abc from (select 1) as abc
产生
(1)
和
select * from (select 1) as abc
产生
1
这对我来说真的很奇怪。那是MySQL,Oracle等的情况吗? 我花了几个小时搞清楚为什么我的条件失败了......
答案 0 :(得分:4)
您的查询返回的行有不同的类型:第一个是ROW(INT)
,第二个是INT
。
MySQL
和其他人缺少此功能。
在第一个查询中,您选择整个ROW
作为单个列。此查询
SELECT abc FROM (SELECT 1, 2) abc
将生成(1, 2)
,这也是一个列,类型为ROW
。
要选择INT
值,请使用:
SELECT abc.col
FROM (
SELECT 1 AS col
) abc