sql >> Databáze >  >> RDS >> Sqlserver

Vraťte číslo oddílu pro každý řádek při dotazu na tabulku oddílů na serveru SQL (T-SQL)

Pokud máte na serveru SQL rozdělenou tabulku a nyní chcete spustit dotaz, který obsahuje číslo oddílu na každém řádku vráceném dotazem, můžete použít $PARTITION systémová funkce k tomu.

$PARTITION funkce vrací číslo oddílu, do kterého by byla namapována sada hodnot rozdělovacího sloupce pro jakoukoli zadanou funkci oddílu.

Můžete jej tedy použít ve svém SELECT příkaz vrátit oddíl, do kterého každý řádek patří.

Příklad

Zde je příklad k demonstraci.

SELECT 
    CatId,
    CatName,
    $PARTITION.CatsPartitionFunction(CatId) AS [Partition]
FROM Cats;

Výsledek:

+---------+-------------+-------------+
| CatId   | CatName     | Partition   |
|---------+-------------+-------------|
| 1       | Meow        | 2           |
| 2       | Fluffy      | 2           |
| 3       | Scratch     | 2           |
| 4       | Bulldog     | 2           |
| 5       | King George | 2           |
| 6       | Sharp       | 3           |
| 7       | Fritz       | 3           |
| 8       | Garfield    | 3           |
| 9       | Boss        | 3           |
+---------+-------------+-------------+

V tomto případě jsou řádky rozděleny mezi oddíly 2 a 3.

Oddíl 1 je prázdný (stejně jako oddíl 4), v souladu s doporučením společnosti Microsoft ponechat oddíly na obou koncích prázdné, aby se eliminoval přesun dat v případě rozdělení nebo sloučení oddílů.


  1. Přechod z MySQL na PostgreSQL - tipy, triky a problémy?

  2. Zkontrolujte statistické cíle v PostgreSQL

  3. jQuery Ověřte použití vzdálené metody pro kontrolu, zda uživatelské jméno již existuje

  4. Zobrazení obrázku v Ireports pomocí PostgreSql