OT SQL dotaz
Jan Král
kral na fortech.cz
Úterý Listopad 22 09:24:01 CET 2016
Podle mě to jde udělat naprosto jednoduše třeba takto:
with uzivatele (poradi, id, surname, name, city)
as
(select row_number() over (order by city), id, surname, name, city from user_table)
select u.*
from uzivatele as u, uzivatele as pivot
where pivot.id = 22037
and pivot.poradi > u.poradi - 10
and pivot.poradi < u.poradi + 10
V klauzuli order by si nastavíš třidění, pivot.id je záznam kolem kterého chceš vidět výsledky a +-10 je počet kolik jich bude před a za
S pozdravem JK
-----Original Message-----
From: Hw-list [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Kosťa MK
Sent: Thursday, November 17, 2016 11:32 PM
To: hw-list na list.hw.cz
Subject: Re: OT SQL dotaz
Dne 17.11.2016 v 23:21 Slavomir Skopalik napsal(a):
>
> Tohle se obvykle resi na klientovi.
>
> Napriklad, pokud pouzivate Delphi, tak komponenta TClientDataSet.
>
> Na serveru to bude vykonove velmi narocne, jelikoz serazeni nemusi byt
> jednoznacne.
>
> Tj. provest serazeny select do temporary tabulky doplnene o sloupec
> ROW_num.
>
> Pak najit puvodni zaznam a od jeho row_num odecist kolik jich chcete
> mit pred.
>
> Pak uz jen select z temporary tabulky kde row_num>= a zaroven <= podle
> toho kolik jich cete mit za puvodnim zanamem.
>
> Vysledny select pak radit podle row_num.
>
Díky,
nepotěšil jste mě :) ale popravdě jsem to ani nečekal, dumám nad tí celé odpoledne a na nic jiného jsem nepřišel :(
S pozdravem
Kosťa
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz Hw-list na list.hw.cz http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list