1

在 Postgre 中,为什么

select abc from (select 1) as abc

产生:

(1)

select * from (select 1) as abc

产生:

1

这对我来说真的很奇怪。MySQL、Oracle 等是这种情况吗?我花了几个小时弄清楚为什么我的条件失败了......

4

1 回答 1

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
于 2009-04-10T13:37:16.237 回答