Re: wrong query result

Поиск
Список
Период
Сортировка
От Albe Laurenz
Тема Re: wrong query result
Дата
Msg-id D960CB61B694CF459DCFB4B0128514C201FA5AA5@exadv11.host.magwien.gv.at
обсуждение исходный текст
Ответ на wrong query result  ("josep porres" <jmporres@gmail.com>)
Список pgsql-general
josep porres wrote:
> select clau, lecact-lecant as m3, m3any, ta, tc, 3 as mesos, persones, true as clavegueram
> from fac_abonats
> where clau in (select clau from tmp_claus_prova)
> order by clau
>
> the thing is that the result of the query returns the same
> number of rows as the table fac_abonats (thousands).

[...]

> At the end I've realized that there is no column named
> 'clau'. It has another name.
> So the subselect query is wrong, if I execute it alone, an
> error appears
>
> ERROR:  no existe la columna «clau»
> LINE 6: select clau from tmp_claus_prova
>                ^
> ********** Error **********
>
> ERROR: no existe la columna «clau»
> Estado SQL:42703
> Caracter: 188
>
> The question is:
> Is it a normal behaviour? Because I think that if the query
> is wrong, wouldn't be better to raise an error?

Yes, this is normal behaviour.
The query is syntactically correct, it just doesn't do what you intended.

It will do the same as:

select clau, lecact-lecant as m3, m3any, ta, tc, 3 as mesos,
       persones, true as clavegueram
from fac_abonats
where 42 in (select 42 from tmp_claus_prova)
order by clau

except probably less efficiently.

Yours,
Laurenz Albe

В списке pgsql-general по дате отправления:

Предыдущее
От: "Dave Page"
Дата:
Сообщение: Re: Debugging Pl/PgSQL functions with the debug contrib module
Следующее
От: "Albe Laurenz"
Дата:
Сообщение: Re: select statement fails