在 Postgre 中,为什么
select abc from (select 1) as abc
产生:
(1)
和
select * from (select 1) as abc
产生:
1
这对我来说真的很奇怪。MySQL、Oracle 等是这种情况吗?我花了几个小时弄清楚为什么我的条件失败了......
在 Postgre 中,为什么
select abc from (select 1) as abc
产生:
(1)
和
select * from (select 1) as abc
产生:
1
这对我来说真的很奇怪。MySQL、Oracle 等是这种情况吗?我花了几个小时弄清楚为什么我的条件失败了......
您的查询返回的行具有不同的类型:第一个是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