Avatar billede trine_h Nybegynder
14. februar 2006 - 22:31 Der er 1 kommentar

problemer med row_number

BEGIN
WITH OrderedRows AS
  (       
SELECT ROW_NUMBER() OVER (order by lastMinuteId ASC) as Row, lastMinuteId,price  FROM JGLM
-- NEDENST. VIRKER IKKE
IF (@price <> 0)
BEGIN
WHERE price > @price
END
)
  SELECT
        lastMinuteId
    FROM OrderedRows
    WHERE row between @startRowIndex and @startRowIndex+@numRows-1
END

Jeg bruger ovenstående paging funktion i sql server 2005 v.h.a. row_number - og det fungerer fint. Problemet er at jeg vil tilsætte sql forespørgselen en where del hvis @price <> 0
Hvordan gøres det?
Avatar billede _codefusion_ Nybegynder
22. februar 2006 - 07:50 #1
Hej trine.

Du kan gøre det på følgende måde:
WITH OrderedRows AS
(
    SELECT     TOP @startRowIndex+@numRows ROW_NUMBER() OVER (ORDER BY lastMinuteId) AS Row,
        lastMinuteId,
        price
    FROM    JGLM
    WHERE    (price > @price) OR (@price = 0)
)

SELECT     lastMinuteId
FROM    OrderedRows
WHERE    Row BETWEEN @startRowIndex and @startRowIndex+@numRows-1
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester