在 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