PostgreSQL - spojeni stringu

Karel Zak zakkr na zf.jcu.cz
Čtvrtek Listopad 2 01:10:50 CET 2000


On Wed, 1 Nov 2000, Petr Uttendorfsky wrote:

> Zdravim,
> 
> mam takovyto select:
> 
> select distinct registrace.id_registrace, registrace.kod_kurzu,
> registrace.jmeno, registrace.datum,
> kurz.nazev_kurz, kurz.popis from registrace, kurz where
> registrace.kod_kurzu=kurz.kod_kurzu || kurz.cislo_kurz
> 
> Potreboval bych vedet, jestli se podminka provadi tak, ze kurz.kod_kurzu
> a kurz.cislo_kurz jsou spojeny do jednoho retezce a ten se pak porovnan
> s registrace.kod_kurzu.

 Vyhodnoceni klausule WHERE musi byt vzdy ukonceno hodnotou boot takze 
tezko vyhodnotit '=' (bool) a to spojit s '||' (text)..

jinak jednoduchy pokus:

nooper=# select 'aaa'::text = 'a' || 'aa';
 ?column?
----------
 t
(1 row)

nooper=# select ('aaa'::text = 'a') || 'aa'::text;
ERROR:  Unable to identify an operator '||' for types 'bool' and 'text'
        You will have to retype this query using an explicit cast

> Pokud ano, proc tam musi byt distinct? Pokud ho neuvedu, jsou vybrany 2
> identicke zaznamy.

Co jsou to identicke zaznamy? ... distinct zajistuje unikatnost *vystupu*, 
zalezi tedy na vasich datech ktera lezou z toho dotazu. Pokud tam dva
zaznamy odpovidajici podmince WHERE jsou tak jsou i ve vystupu.


				Karel






Další informace o konferenci Databases