SQL dotaz

"Zíka Aleš, Ing." Ales.Zika na pel.br.ds.mfcr.cz
Čtvrtek Srpen 22 06:38:27 CEST 2002


> 
> Mohlo by fungovat něco jako
> 
>   select count(*) from PRODUKTY P1
>     left join PRODUKTY P2 on P2.NAZEV<=P1.NAZEV
>     where P1.ID=123;
> 
> (místo 123 samozřejmě dosaďte ID, které hledáte). Ale chtělo by to
> vyzkoušet, jak se to bude chovat, pokud NAZEV může být NULL.


	No jo, ale to je podle mě to samy, akorat slozitejc napsany, ne?
	Sam jsem resil neco podobnyho - do tabulky zavodniku kazdymu ulozit
poradi podle vysledku a neprisel jsem na nic chytrejsiho nez:

  UPDATE zavodnik SET poradi =
    (SELECT count(*) + 1 FROM zavodnik zav
       WHERE zavodnik.vysledek > zav.vysledek);

coz je ovsem dost pomaly. Na druhou stranu to elegantne resi situaci, ze
kdyz maji dva shodny vysledek, maji take shodne poradi, coz ruzne vypisy
stylem - vypis serazene podle vysledku a ocisluj radky neumi.
	Jedinej jinej zpusob co me napadl, je vypocitat zavodnikovi poradi
hned pri zapisu vysledku a ty co jsou za nim o jednu posunout (zvetsit).


			Ales Zika
			Pelhrimov

			e-mail: Ales.Zika na pel.br.ds.mfcr.cz
				  Ales.Zika na seznam.cz
			SMS:    Ales.Zika na sms.underground.cz

 


Další informace o konferenci Databases