Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Trả lại số phân vùng cho mỗi hàng khi truy vấn bảng phân vùng trong SQL Server (T-SQL)

Nếu bạn có một bảng được phân vùng trong SQL Server và bây giờ bạn muốn chạy một truy vấn bao gồm số phân vùng trên mỗi hàng được truy vấn trả về, bạn có thể sử dụng $PARTITION chức năng hệ thống để thực hiện điều đó.

$PARTITION hàm trả về số phân vùng trong đó tập hợp các giá trị cột phân vùng sẽ được ánh xạ cho bất kỳ chức năng phân vùng cụ thể nào.

Do đó, bạn có thể sử dụng nó trong SELECT của mình để trả về phân vùng mà mỗi hàng thuộc về.

Ví dụ

Đây là một ví dụ để chứng minh.

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

Kết quả:

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

Trong trường hợp này, các hàng được phân phối giữa các phân vùng 2 và 3.

Phân vùng 1 trống (cũng như phân vùng 4), theo khuyến nghị của Microsoft về việc để trống phân vùng ở cả hai đầu, để loại bỏ sự di chuyển dữ liệu trong sự kiện các phân vùng bị chia tách hoặc hợp nhất.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Spotlight Cloud hỗ trợ cho Azure SQL DB Thông báo (Xem trước)

  2. Cách COUNT () hoạt động trong SQL Server

  3. Dấu thời gian trong T-Sql trong C # có nghĩa là gì?

  4. Các cách khác nhau để so sánh lược đồ và dữ liệu bảng SQL Server

  5. SQL Server thêm khóa chính tăng tự động vào bảng hiện có