Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Kembalikan Nomor Partisi untuk Setiap Baris Saat Membuat Kueri Tabel yang Dipartisi di SQL Server (T-SQL)

Jika Anda memiliki tabel yang dipartisi di SQL Server, dan sekarang Anda ingin menjalankan kueri yang menyertakan nomor partisi pada setiap baris yang dikembalikan oleh kueri, Anda dapat menggunakan $PARTITION fungsi sistem untuk melakukan hal itu.

$PARTITION function mengembalikan nomor partisi tempat sekumpulan nilai kolom partisi akan dipetakan untuk fungsi partisi yang ditentukan.

Oleh karena itu, Anda dapat menggunakannya di SELECT . Anda pernyataan untuk mengembalikan partisi yang dimiliki setiap baris.

Contoh

Berikut ini contoh untuk didemonstrasikan.

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

Hasil:

+---------+-------------+-------------+
| 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           |
+---------+-------------+-------------+

Dalam hal ini, baris didistribusikan antara partisi 2 dan 3.

Partisi 1 kosong (seperti halnya partisi 4), sesuai dengan rekomendasi Microsoft untuk membiarkan partisi di kedua ujungnya kosong, untuk menghilangkan perpindahan data jika partisi dipisah atau digabungkan.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggunakan Ekspresi CASE di SQL Server

  2. Cara Menjatuhkan Batasan Kunci Asing di Database SQL Server - Tutorial SQL Server / TSQL Bagian 75

  3. Koma dalam Data CSV

  4. Bagaimana cara menggunakan alias di klausa where?

  5. Kesalahan nama kolom yang ambigu pada satu server tertentu