Question

Dans Postgre, pourquoi

select abc from (select 1) as abc

produit:

(1)

et

select * from (select 1) as abc

produit:

1

C'est pour moi vraiment étrange. Est-ce le cas avec MySQL, Oracle, etc? Je passais des heures à comprendre pourquoi mes conditions échouaient ...

Était-ce utile?

La solution

Les lignes retournées par vos requêtes sont de type différent: le premier est ROW(INT) , tandis que le second est INT.

MySQL et d'autres ne disposent pas de cette fonction.

Dans votre première requête, vous sélectionnez une ROW tout comme une seule colonne. Cette requête

SELECT abc FROM (SELECT 1, 2) abc

produira (1, 2), qui est une seule colonne trop et a le type ROW.

Pour sélectionner la valeur INT, utilisez:

SELECT  abc.col
FROM    (
        SELECT  1 AS col
        ) abc
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top