sql >> Database teknologi >  >> RDS >> Sqlserver

SQL Server:hvordan man vælger et fast antal rækker (vælg hver x-te værdi)

I bund og grund er det eneste, du skal gøre for at vælge den x-te værdi, at beholde alle rækker, hvor modulet for rækkenummeret divideret med x er 0.

WHERE rn % @x_thValues = 0

Nu for at kunne bruge din ROW_NUMBER 's resultat, skal du pakke hele erklæringen ind i et undervalg

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

Kombineret med en variabel til hvilke x-te værdier du har brug for, kan du måske bruge noget som dette testscript

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. Den midlertidige SQL Server-tabel forsvinder

  2. mysql database insert ændrer alle ID'er til 4294967295

  3. Sådan får du en liste over alle Check Constraints i SQL Server-databasen - SQL Server / TSQL Tutorial Del 85

  4. MySQL-lagrede procedurer eller php-kode?