sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server:hur man väljer ett fast antal rader (välj vart x:te värde)

Allt du behöver göra för att välja det x-te värdet är att behålla alla rader där modulen för radnumret dividerat med x är 0.

WHERE rn % @x_thValues = 0

Nu för att kunna använda din ROW_NUMBER s resultat måste du slå in hela uttalandet i ett underval

SELECT  *
FROM    (
            SELECT  *
                    , rn = ROW_NUMBER() OVER (ORDER BY Value)
            FROM    DummyData
        ) d
WHERE   rn % @x_thValues = 0                    

Kombinerat med en variabel till vilka x-te värden du behöver, kan du använda något som det här testskriptet

DECLARE @x_thValues INTEGER = 2

;WITH DummyData AS (SELECT * FROM (VALUES (1), (2), (3), (4)) v (Value))
SELECT  *
FROM    (
            SELECT  *
                    , rn = ROW_NUMBER() OVER (ORDER BY Value)
            FROM    DummyData
        ) d
WHERE   rn % @x_thValues = 0                    


  1. Hur tar man bort dubbletter i mysql-databasen?

  2. FEL 1878 (HY000):Tillfälligt filskrivfel

  3. Vad är SQL? Vad är en databas? Relationella databashanteringssystem (RDBMS) förklaras på vanlig engelska.

  4. Visa avdelningsnamn med hjälp av Cursors.Skapa ett PL/SQL-block för att visa alla avdelningsnamn från avdelningstabellen med hjälp av markörer