Pregunta

En Postgre, ¿por qué

select abc from (select 1) as abc

produce:

(1)

y

select * from (select 1) as abc

produce:

1

Eso es realmente extraño para mí.¿Es ese el caso de MySQL, Oracle, etc.?Pasé horas averiguando por qué mis condiciones estaban fallando...

¿Fue útil?

Solución

Las filas devueltas por sus consultas tienen diferentes tipos:El primero es ROW(INT), mientras que el segundo es INT.

MySQL y otros carecen de esta característica.

En tu primera consulta, estás seleccionando un conjunto ROW como una sola columna.Esta consulta

SELECT abc FROM (SELECT 1, 2) abc

Producirá (1, 2), que también es una sola columna y tiene tipo ROW.

Para seleccionar el INT valor, uso:

SELECT  abc.col
FROM    (
        SELECT  1 AS col
        ) abc
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top