tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von CPoly
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
345
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Sinc Sinc ist offline Mitglied Bronze
    Registriert seit
    Apr 2006
    Beiträge
    27
    Hey Lads,

    Ich habe eine KnowledgeDB in der bekannte Fehler gespeichert werden.
    Falls ich nach einem Fehler suche, bekomme ich teilweise recht viele Beitraege zurueck.
    Ich moechte nun gerne meine Suchergebnisse unterteilen, so wie das z.B. bei der Google Suche zu sehen ist.
    D.h. es sollen jeweils nur 10 Beitraege pro Seite aufgelistet werden.

    Momentan kann ich mir jeweils x Beitraege anzeigen lassen mit Start- und Endwert.
    Code :
    1
    2
    3
    4
    5
    
    SELECT     ID, subject, error
    FROM         dbo.errsolution
    WHERE     ((SELECT     COUNT(*)
                             FROM         dbo.errsolution n2
                             WHERE     n2.ID <= dbo.errsolution.ID) BETWEEN 1 AND 10)
    ID = Primary key

    Soweit, so gut.
    Aber wie verkaufe ich dem jetzt, dass er doch bitte die ersten 10 Beitraege oder alle Beitraege vom 11ten bis zum 20ten anzeigt, die ein bestimmtes Wort enthalten? z.B.
    Code :
    1
    
    WHERE dbo.errsolution.error LIKE '%root%'


    SQL Server 2000 sind Befehle wie LIMIT, OFFSET oder ROW_COUNT leider noch nicht bekannt.


    Koennt ihr mir weiterhelfen?
     

  2. #2
    CPoly CPoly ist offline Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    Sinc bedankt sich. 

  3. #3
    Sinc Sinc ist offline Mitglied Bronze
    Registriert seit
    Apr 2006
    Beiträge
    27
    Vielen Dank, das sieht vielversprechend aus.
    Muss ich wohl nochmal google benutzen ueben gehen

    Ich kann leider erst spaeter genauer reingucken.
    Aber ich werde das Topic auf jeden Fall updaten.
     

  4. #4
    Sinc Sinc ist offline Mitglied Bronze
    Registriert seit
    Apr 2006
    Beiträge
    27
    Vielen Dank. Die zweite Antwort in http://stackoverflow.com/questions/5...sqlserver-2000 löst das Problem.
    Ich weiss nicht wie sich der geschachtelte Select Befehl auf grössere Datensätze auswirkt, für meine DB funktioniert er ohne merkbare Performanceeinbußen.

    I think a nested SELECT TOP n query is probably the most efficient way to accomplish it.

    Code :
    1
    2
    3
    4
    
    SELECT TOP ThisPageRecordCount *
    FROM Table
    WHERE ID NOT IN (SELECT TOP BeforeThisPageRecordCount ID FROM Table ORDER BY OrderingColumn)
    ORDER BY OrderingColumn

    Replace ThisPageRecordCount with items per page and BeforeThisPageRecordCount with (PageNumber - 1) * items-per-page.

    Of course the better way in SQL Server 2005 is to use the ROW_NUMBER() function in a CTE.
     

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 20.01.09, 23:56
  2. MsSQL Server 2000: Constraints einer Spalte ermitteln?
    Von DataFox im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 20.05.08, 22:43
  3. Neue Tabelle in Merge-Replikation (MS-SQL-Server 2000 SP4)
    Von Dachswehr im Forum Relationale Datenbanksysteme
    Antworten: 4
    Letzter Beitrag: 29.07.05, 13:39
  4. Datenimport aus einer Textfile in MS SQL Server 2000
    Von Phil_adelphia im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 18.01.05, 09:47
  5. Problem mit einer Dienstanwendung auf 2000 Server
    Von PatrickStr im Forum Microsoft Windows
    Antworten: 0
    Letzter Beitrag: 16.11.04, 21:09

Stichworte