ďťż
 
PGSQL - odwołanie się do wyniku "w locie" ďťż
 
PGSQL - odwołanie się do wyniku "w locie"
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

PGSQL - odwołanie się do wyniku "w locie"



Andrzej Stróżyński - 24-10-2005 19:53
PGSQL - odwołanie się do wyniku "w locie"
  Witam.
Czy zapytanie może odwołać się do swojego wyniku? Np.:

SELECT pole1, strpos(pole2, 'x') AS wynik, substr(pole2,1,wynik) FROM ...

To tylko wydumany przykład ale myślę, że oddaje sedno sprawy.
Takie zapytanie kończy się oczywiście komunikatem błędu o braku pola
"wynik" ale może jest jakiś sposób aby nie było trzeba w jednym zapytaniu
wielokrotnie wyliczać tych samych formuł?

Z góry dziękuję
AS.

PS.
Jak widać nie taki ze mnie AS ;-)





Jester - 25-10-2005 10:58

  Andrzej Stróżyński napisał(a):

> Czy zapytanie może odwołać się do swojego wyniku? Np.:
>
> SELECT pole1, strpos(pole2, 'x') AS wynik, substr(pole2,1,wynik) FROM ...
>
> To tylko wydumany przykład ale myślę, że oddaje sedno sprawy.
> Takie zapytanie kończy się oczywiście komunikatem błędu o braku pola
> "wynik" ale może jest jakiś sposób aby nie było trzeba w jednym
> zapytaniu wielokrotnie wyliczać tych samych formuł?

Aliasu kolumny można użyć tylko w sekcji order by - w każdym innym
miejscu serwer zaprotestuje. W przypadku bardziej skomplikowanych
działań można posłużyć się UDFem, którego powtórne wywoływanie jest
bardziej przejrzyste niż przepisywanie tych samych obliczeń. W tak
trywialnym przypadku jak w podanym przykładzie jedynym sensownym
wyjściem jest chyba jednak powtórzenie wyrażenia...

--
Pozdrawiam
Jester




Adam Buraczewski - 25-10-2005 10:58

  Andrzej Stróżyński <astrozynski@poczta_dot_onet.pl> wrote:
> Witam.
> Czy zapytanie może odwołać się do swojego wyniku? Np.:
>
> SELECT pole1, strpos(pole2, 'x') AS wynik, substr(pole2,1,wynik) FROM ...

Nie może, ale może po prostu użyj czegoś takiego:

SELECT pole1, wynik, substr(pole2, 1, wynik) FROM (
SELECT pole1, pole2, strpos(pole2, 'x') as wynik FROM
... -- tu to co miałeś dotąd jako "..."
) AS x;

W Postgresie możesz użyć podzapytania we FROM, tylko trzeba określić
jakiś alias do niego.

Pozdrawiam!

--
Adam Buraczewski <adamb (at) nor (dot) pl> * Linux user #165585
GCS/TW d- s-:+>+:- a C+++(++++) UL++++$ P++ L++++ E++ W+ N++ o? K w--
O M- V- PS+ !PE Y PGP+ t+ 5 X+ R tv- b+ DI D G++ e+++>++++ h r+>++ y?




Andrzej Stróżyński - 25-10-2005 10:58

 
Użytkownik "Adam Buraczewski" <adamb@mielonka.nor.pl> napisał w wiadomości
news:qodv23-k22.ln1@adamb.at.nor.pl...
> Andrzej Stróżyński <astrozynski@poczta_dot_onet.pl> wrote:
>> Witam.
>> Czy zapytanie może odwołać się do swojego wyniku? Np.:
>>
>> SELECT pole1, strpos(pole2, 'x') AS wynik, substr(pole2,1,wynik) FROM
>> ...
>
> Nie może, ale może po prostu użyj czegoś takiego:
>
> SELECT pole1, wynik, substr(pole2, 1, wynik) FROM (
> SELECT pole1, pole2, strpos(pole2, 'x') as wynik FROM
> ... -- tu to co miałeś dotąd jako "..."
> ) AS x;
>
> W Postgresie możesz użyć podzapytania we FROM, tylko trzeba określić
> jakiś alias do niego.
>
dziękuję za pomoc

A.S.





Grzegorz Szyszlo - 27-10-2005 23:55

  Adam Buraczewski napisał(a):
> Andrzej Stróżyński <astrozynski@poczta_dot_onet.pl> wrote:
>
>>Witam.
>>Czy zapytanie może odwołać się do swojego wyniku? Np.:
>>
>>SELECT pole1, strpos(pole2, 'x') AS wynik, substr(pole2,1,wynik) FROM ...
>
>
> Nie może, ale może po prostu użyj czegoś takiego:
>
> SELECT pole1, wynik, substr(pole2, 1, wynik) FROM (
> SELECT pole1, pole2, strpos(pole2, 'x') as wynik FROM
> ... -- tu to co miałeś dotąd jako "..."
> ) AS x;
>
> W Postgresie możesz użyć podzapytania we FROM, tylko trzeba określić
> jakiś alias do niego.

Heh... a ja do takich rzeczy na siłę używałem widoków, i zastanawiałem
się jak to zapisać wprost. dzięki za świetną radę :)

tak wiem wiem. z niczym jest to niekompatybilne.
ale takie rzeczy w źródłach zawsze należy odpowiednio komentować.

znik.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    =?ISO-8859-2?Q?Narz=EAdzie_do_budowania_zapyta=F1_SQL=2C?==?I SO-8859-2?Q?_PL/PgSQL=2C_PL/SQL=2C_T-SQL?= [pgsql] Akcja w =?iso-8859-2?b?emFsZb9ub7ZjaQ==?= od liczby zmienionych =?iso-8859-1?q?rekord=F3w?= [sql][pgsql] zapytanie sql [pgsql] Wykonanie triggera po =?ISO-8859-2?Q?zako=F1czeniu_tra?==?ISO-8859-2?Q?nsakcji?= [pgsql] =?ISO-8859-2?Q?Prawid=B3owe_post=EApowanie_w_przyp?==?ISO-8859-2?Q?adku_awarii?= [PGSQL] Funkcje =?ISO-8859-2?Q?zwracaj=B1ce_=27rowset=27_i_?==?ISO-8859-2?Q?tabele_tymczasowe?= [pgsql] 7.4 =?ISO-8859-2?Q?og=B3upia=B3_przy_zak=B3adaniu_?==?ISO-8859-2?Q?indeksu?= [pgsql] Zmiana schematu do =?ISO-8859-2?Q?kt=F3rego_nalezy_o?==?ISO-8859-2?Q?biekt=2E?= Która z baz: [PGSQL] czy [MySQL] będzie lepsza w takim zastosowaniu (masowe UPDATE) PL/pgSQL jak =?ISO-8859-2?Q?u=BFy=E6_transakcji=2E?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • morebeer.opx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com