ďťż
 
mssql +zakres ďťż
 
mssql +zakres
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

mssql +zakres



Krzysztof Przybyła - 11-12-2005 17:33
mssql +zakres
  w jaki sposób mozna wyznaczyc ograniczyć zbiór wynikowy dla zakresu wyniku
od 1 do 10 rekordu to mozna uzyć top

select cos.*
from cos
where cos.a=cos.b

zwraca zestaw powiedzmy 5000 rekordów

a jak wyznaczyć od 11 do 20 rekordu zeby zwrócił mi 10 rekordów z wyniku

potrzebuję to do własnego mechanizmu fetchowania danych
dla przewijania listy gdzie lista posiada 10 elementów





Sebastian - 11-12-2005 17:33

 
Użytkownik "Krzysztof Przybyła" <k.przybyla@wp.pl> napisał w wiadomości
news:dnh03c$a22$1@nemesis.news.tpi.pl...
>w jaki sposób mozna wyznaczyc ograniczyć zbiór wynikowy dla zakresu wyniku
> od 1 do 10 rekordu to mozna uzyć top
>
> select cos.*
> from cos
> where cos.a=cos.b
>
> zwraca zestaw powiedzmy 5000 rekordów
>
> a jak wyznaczyć od 11 do 20 rekordu zeby zwrócił mi 10 rekordów z wyniku
>

Jak mowimy o kolejnosci to tylko w przypadku kiedy mamy ustalony porzadek
powiedzmy po polu id.

1 rozwizanie:

SELECT TOP 10 *
FROM (select TOP 20 cos.*
from cos
where cos.a=cos.b
ORDER BY id)
ORDER BY id DESC

2 rozwiazanie:

CREATE TABLE ##pom (porzadkowa IDENTITY(1,1), <kolumny tabeli cos>)

INSERT INTO ##pom
SELECT *
FROM cos
WHERE cos.a = cos.b
ORDER BY id

SELECT <kolumny tabeli cos>
FROM ##pom
WHER porzadkowa >10 AND poszadkowa <= 20

Sebastian




Jester - 13-12-2005 09:34

  Krzysztof Przybyła napisał(a):

>a jak wyznaczyć od 11 do 20 rekordu zeby zwrócił mi 10 rekordów z wyniku
>
>
>
Jeżeli koniecznie chcesz to osiągnąć jednym zapytaniem to niestety ale w
MSSQL będzie to chyba musiało być coś w stylu:

--(od 11 do 20)

select top 10 cos.*
from cos
where cos.a=cos.b
and cos.pole_id not in (select top 10 c.pole_id from cos c where cos.a=cos.b order by cos.c)
order by cos.c;

--(od 21 do 30)

select top 10 cos.*
from cos
where cos.a=cos.b
and cos.pole_id not in (select top 20 c.pole_id from cos c where c.a=c.b order by c.c)
order by cos.c;

itd.

--
Pozdrawiam
Jester




Krzysztof Raczkowski - 13-12-2005 09:34

  Krzysztof Przybyła wrote:
> w jaki sposób mozna wyznaczyc ograniczyć zbiór wynikowy dla zakresu wyniku
> od 1 do 10 rekordu to mozna uzyć top
>
> select cos.*
> from cos
> where cos.a=cos.b
>
> zwraca zestaw powiedzmy 5000 rekordów
>
> a jak wyznaczyć od 11 do 20 rekordu zeby zwrócił mi 10 rekordów z wyniku
>
> potrzebuję to do własnego mechanizmu fetchowania danych
> dla przewijania listy gdzie lista posiada 10 elementów
>

To już było wiele razy... osobiście nie próbowałem ale jakby tak założyć
taki kursor ?

DECLARE cursor_name CURSOR GLOBAL for
....

czy to nie rozwiązuje sprawy lepiej niż różne podzapytania ? a dodatkowo
mamy opcję aby tak stworzony kursor był statyczny...

--
Pozdrawiam
Krzysztof Raczkowski





Krzysztof Przybyła - 13-12-2005 09:34

  a czy jest możliwe okresenie od do dla fetch
Użytkownik "Krzysztof Raczkowski" <raczkowk@wytnij-poczta.wp.pl> napisał w
wiadomości news:dni6ro$al9$2@nemesis.news.tpi.pl...
> Krzysztof Przybyła wrote:
>> w jaki sposób mozna wyznaczyc ograniczyć zbiór wynikowy dla zakresu
>> wyniku
>> od 1 do 10 rekordu to mozna uzyć top
>>
>> select cos.*
>> from cos
>> where cos.a=cos.b
>>
>> zwraca zestaw powiedzmy 5000 rekordów
>>
>> a jak wyznaczyć od 11 do 20 rekordu zeby zwrócił mi 10 rekordów z wyniku
>>
>> potrzebuję to do własnego mechanizmu fetchowania danych
>> dla przewijania listy gdzie lista posiada 10 elementów
>>
>
> To już było wiele razy... osobiście nie próbowałem ale jakby tak założyć
> taki kursor ?
>
> DECLARE cursor_name CURSOR GLOBAL for
> ...
>
> czy to nie rozwiązuje sprawy lepiej niż różne podzapytania ? a dodatkowo
> mamy opcję aby tak stworzony kursor był statyczny...
>
> --
> Pozdrawiam
> Krzysztof Raczkowski




Krzysztof Raczkowski - 13-12-2005 09:34

  Krzysztof Przybyła wrote:
> a czy jest możliwe okresenie od do dla fetch

A czy zajrzałeś do dokumentacji ??

--
Pozdrawiam
Krzysztof Raczkowski




Krzysztof Przybyła - 13-12-2005 09:35

  z dokumentacji wywnioskowalem ze zawsze jest zwracany jeden rekord a dla
zakresu mozna by było zrobic petle
Użytkownik "Krzysztof Raczkowski" <raczkowk@wytnij-poczta.wp.pl> napisał w
wiadomości news:dnk7hn$4el$1@nemesis.news.tpi.pl...
> Krzysztof Przybyła wrote:
>> a czy jest możliwe okresenie od do dla fetch
>
> A czy zajrzałeś do dokumentacji ??
>
> --
> Pozdrawiam
> Krzysztof Raczkowski
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Zdalny =?ISO-8859-2?Q?dost=EAp_do_MSSQL_bez_zarz=B1dzani?==?ISO-8859-2?Q?a?= [MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?= [MSSQL 2k] - jak =?ISO-8859-2?Q?pod=B3=B1czy=E6_serwer_na_?==?ISO-8859-2?Q?porcie_innym_ni=BF_1433=3F?= MSSQL Express czy Oracle Express MSSQL 2005 i uruchamianie procedury o =?ISO-8859-2?Q?okre=B6lone?==?ISO-8859-2?Q?j_godzinie?= [MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?= [MSSQL 2000] =?ISO-8859-2?Q?wywo=B3anie_procesu_z_poziomu_?==?ISO-8859-2?Q?job=27a?= [MSSQL 2K] =?ISO-8859-2?Q?Wp=B3yw_ustawie=F1_regionalnych_?==?ISO-8859-2?Q?serwera_na_zapytania?= Pobierananie danych z innej bazy danych w MSSQL Migracja MSSQL 2005 CTP na 2005 Express
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • felgiuzywane.xlx.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