Trả về một Biến _thể (Chuỗi) cho biết vị trí của một số xuất hiện trong một chuỗi phạm vi được tính toán.
Cú pháp
Partition( number, start, stop, interval)
Cú pháp hàm Partition có các đối số sau đây:
Đối số |
Mô tả |
number |
Bắt buộc. Số nguyên mà bạn muốn đánh giá so với các phạm vi. |
bắt đầu |
Bắt buộc. Số nguyên là điểm bắt đầu của phạm vi số tổng thể. Số không được nhỏ hơn 0. |
ngừng |
Bắt buộc. Số nguyên là số cuối cùng của phạm vi số tổng thể. Số không được bằng hoặc nhỏ hơn bắt đầu. |
interval |
Bắt buộc. Số nguyên chỉ rõ kích cỡ của phân vùng trong phạm vi số chung (từ đầu đếnđầu). |
Chú thích
Hàm Partition xác định phạm vi cụ thể mà trong đó số rơi vào và trả về một Biến_thể (Chuỗi) mô tả phạm vi đó. Hàm Partition 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ố đơn hàng nằm trong nhiều 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 biết cách xác định các phạm vi bằng cách sử dụng ba tập hợp các đố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 thể hiện bằng lowervalue:uppervalue, trong đó điểm cuối thấp (lowervalue) của phạm vi được phân tách với điểm cuối cao (giá trị trên) của phạm vi bằng dấu hai chấm (:).
bắt đầu |
ngừng |
interval |
Trước đầu tiên |
Phạm vi Đầu tiên |
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 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 các số không thể chia đều theo khoảng thời gian. Phạm vi cuối cùng mở rộng để dừng (11 số) ngay cả khi khoảng thời gian là 20.
Nếu cần, Phân vùng trả về một phạm vi có đủ khoảng trắng ở đầu để có cùng số ký tự ở bên trái và bên phải của dấu hai chấm với các ký tự trong dấu chấm, cộng với một ký 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 khoảng _thời_gian là 1, phạm vi là number:number, bất kể các tham đối bắt đầu và dừng. Ví dụ, nếu khoảng thời gian là 1, số là 100 và stop là 1000, Phân vùng 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 đầu"(40) đến "stop"(240) với kích cỡ "interval"(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 PriceRange và đếm trong cột 'Đếm'. |
Ví dụ về VBA
Ví dụ này giả định rằng bạn có một bảng Đơn hàng có chứa một trường Cước_phí. Nó tạo ra một thủ tục chọn lọc đếm số đơn hàng mà chi phí vận chuyển rơi vào mỗi phạm vi trong một vài phạm vi. Hàm Partition đượ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ố đơn hàng trong mỗi phạm vi. Trong ví dụ này, các đối số của hàm Partitionlà bắt đầu = 0, stop = 500, interval = 50. Dải ô đầu tiên do đó sẽ là 0:49, v.v. 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);