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