Trả về một Biến_thể (Chuỗi) cho biết vị trí của một số trong một chuỗi các phạm vi được tính.
Cú pháp
Partition(number, start, stop, interval)
Cú pháp hàm Phân vùng có các đối số sau:
| Đối số | Mô tả |
|---|---|
| số | Bắt buộc. Số nguyên mà bạn muốn đánh giá dựa trên các phạm vi. |
| bắt đầu | Bắt buộc. Số nguyên là điểm bắt đầu của toàn bộ phạm vi số. Số không được nhỏ hơn 0. |
| dừng lại | Bắt buộc. Số nguyên là điểm cuối của toàn bộ phạm vi số. Số không được bằng hoặc nhỏ hơn bắt đầu. |
| khoảng thời gian | Bắt buộc. Số nguyên chỉ rõ kích cỡ của các phân vùng trong phạm vi tổng thể của các số (từ bắt đầu đến điểm dừng). |
Chú thích
Hàm Partition xác định dải ô cụ thể mà số nằm trong đó và trả về Biến thể (Chuỗi) mô tả dải đó. Hàm Phân vùng hữu ích nhất trong các truy vấn. Bạn có thể tạo truy vấn chọn hiển thị số lượng đơn hàng nằm trong các phạm vi khác nhau, ví dụ: giá trị đơn hàng từ 1 đến 1000, 1001 đến 2000, v.v.
Bảng sau đây cho thấy cách xác định các phạm vi bằng ba bộ đối số bắt đầu, dừng và khoảng thời gian . Cột Phạm vi Đầu tiên và Phạm vi Cuối cùng hiển thị những gì Phân vùng trả về. Các phạm vi được đại diện bởi lowervalue:uppervalue, trong đó đầu thấp nhất (lowervalue) của phạm vi được tách biệt với cấp cao nhất (uppervalue) của phạm vi bằng dấu hai chấm (:).
| bắt đầu | dừng lại | khoảng thời gian | Trước Đầu tiên | Phạm vi thứ nhất | Phạm vi Cuối cùng | Sau Cuối cùng |
|---|---|---|---|---|---|---|
| 0 | 99 | 5 | " :-1" | " 0: 4" | " 95: 99" | " 100: " |
| 20 | 199 | 10 | " : 19" | " 20: 29" | " 190: 199" | " 200: " |
| 100 | 1010 | 20 | " : 99" | " 100: 119" | " 1000: 1010" | " 1011: " |
Trong bảng được hiển thị ở trên, dòng thứ ba hiển thị kết quả khi bắt đầu và dừng xác định một tập hợp số không được chia đều theo khoảng cách. Phạm vi cuối cùng mở rộng đến điểm dừng ( 11 số) ngay cả khi khoảng thời gian là 20.
Nếu cần thiết, Phân vùng sẽ trả về một phạm vi với đủ dấu cách ở đầu sao cho có cùng số lượng ký tự ở bên trái và bên phải dấu hai chấm giống như số các ký tự trong dấu dừng, cộng một. Điều này đảm bảo rằng nếu bạn sử dụng Phân vùng với các số khác, văn bản kết quả sẽ được xử lý đúng cách trong mọi thao tác sắp xếp tiếp theo.
Nếu interval là 1, phạm vi là số:số, bất kể các tham đối bắt đầu và dừng . Ví dụ, nếu interval là 1, number là 100 và stop là 1000, thì Partition trả về " 100: 100".
Nếu bất kỳ phần nào là Null, Phân vùng sẽ trả về giá trị Null.
Ví dụ về truy vấn
| Biểu thức | Kết quả |
|---|---|
| SELECT Partition(unitprice,40,240,20) AS PriceRange, count(productsales.unitprice) AS Count FROM productSales GROUP BY Partition(unitprice,40,240,20); | Tạo một tập hợp các phạm vi cho các giá trị trong trường "đơn_giá" từ "bắt"(40) tới "dừng"(240) với kích cỡ "khoảng"(20) bằng nhau và tính toán số lượng "đơn_giá" trong các phạm vi tương ứng. Hiển thị các phạm vi trong cột Phạm vi Giá và số lượng trong cột 'Số lượng'. |
Ví dụ về VBA
Ví dụ này giả định rằng bạn có một bảng Đơn đặt hàng chứa một trường Cước. Nó tạo ra một quy trình chọn đếm số lượng đơn hàng mà chi phí cước phí rơi vào từng phạm vi trong số một vài phạm vi. Hàm Phân vùng được sử dụng trước tiên để thiết lập các phạm vi này, sau đó hàm SQL Count đếm số lượng đơn hàng trong mỗi phạm vi. Trong ví dụ này, các đối số cho hàm Phân vùng là bắt đầu = 0, dừng = 500, khoảng thời gian = 50. Do đó, phạm vi thứ nhất sẽ là 0:49 và cứ như vậy lên đến 500.
SELECT DISTINCTROW Partition([freight],0, 500, 50) AS Range,
Count(Orders.Freight) AS Count
FROM Orders
GROUP BY Partition([freight],0,500,50);