Chức năng LEAD() của máy chủ SQL

Chuc Nang Lead Cua May Chu Sql



Trong bài viết này, chúng tôi sẽ hướng dẫn bạn các nguyên tắc cơ bản khi làm việc với hàm lead() trong SQL Server. Chúng tôi sẽ đề cập đến chức năng của hàm, cú pháp của nó và các ví dụ thực tế về cách sử dụng nó.

Chức năng lãnh đạo máy chủ SQL

Hàm dẫn đầu trong SQL Server là một hàm phân tích cho phép bạn truy cập dữ liệu từ một hàng tiếp theo trong cùng một tập hợp kết quả mà không cần tự nối.

Hàm này cho phép bạn truy cập một hàng ở một độ lệch nhất định trước hàng hiện tại. Ví dụ: sử dụng chức năng dẫn đầu, bạn có thể tìm thấy hàng ngay sau hàng hiện tại, hàng thứ 10 kể từ hàng hiện tại, v.v.







Chức năng này thúc đẩy các nhà phát triển cơ sở dữ liệu thực hiện so sánh hàng mà không cần thực hiện các tác vụ phức tạp như nối, sử dụng dạng xem, v.v.



Cú pháp hàm

Sau đây mô tả cú pháp của hàm lead() trong SQL Server:



DẪN ( scalar_expression [ ,offset ] , [ default ] )
QUÁ ( [ partition_by_clause ] order_by_clause )

Danh sách tiếp theo là các đối số được hỗ trợ và chức năng của chúng:





  1. scalar_expression – đối số này biểu thị giá trị trả về dựa trên phần bù đã xác định. Đây có thể là một biểu thức của bất kỳ loại nào trả về một giá trị. Tuy nhiên, giá trị của scalar_expression không thể là một hàm phân tích/cửa sổ khác.
  2. offset – điều này đặt số lượng hàng từ vị trí hàng hiện tại mà giá trị được tìm nạp. Theo mặc định, hàm sẽ lấy hàng ngay lập tức tính từ hàng hiện tại. Tương tự, giá trị của tham số offset không thể là hàm giải tích hoặc số nguyên âm.
  3. mặc định - tham số này đặt giá trị mặc định nếu giá trị bù được cung cấp nằm ngoài phạm vi của phân vùng đích. Theo mặc định, hàm sẽ trả về NULL.
  4. PHẦN THAM GIA BỞI – mệnh đề partition_by xác định các quy tắc phân chia tập kết quả thành các phần khác nhau. Sau đó, chức năng này được áp dụng cho từng phân vùng kết quả.
  5. ORDER BY – điều này xác định thứ tự hợp lý trong đó các hàng trong mỗi phân vùng được áp dụng.

Hàm trả về kiểu dữ liệu được xác định trong biểu_thức vô hướng. Nếu giá trị trả về là NULL, hàm sẽ trả về NULL.

Dữ liệu mẫu

Hãy để chúng tôi sử dụng một số cơ sở dữ liệu mẫu để minh họa rõ nhất cách sử dụng hàm dẫn đầu. Đầu tiên, sử dụng các truy vấn như hình dưới đây:



DROP DATABASE NẾU EXISTS hàng tồn kho;

TẠO kho cơ sở dữ liệu;

SỬ DỤNG hàng tồn kho;

THẢ BẢNG NẾU TỒN sản phẩm;

TẠO BẢNG sản phẩm (
id int khóa chính nhận dạng không rỗng,
product_name varchar(100),
nhà sản xuất varchar(50),
số lượng int không null,
giá int mặc định 0,
bit trong kho
);
chèn vào sản phẩm(product_name, nhà sản xuất, số lượng, giá, in_stock)
các giá trị ('Apple iPad Air', 'Apple', 100, 569,99, 1),
('Samsung Galaxy Z Flip 4', 'Samsung', 302, 1569.00, 1),
('Sony Playstation 5', 'Sony',  500, 499,99, 1),
('Samsung Galaxy Watch-5 Pro', 'Samsung', 600, 209/.99, 1),
('Apple Watch Series 6', 'Apple', 459, 379.90, 1),
('Apple AirPods Pro', 'Apple', 200, 199,99, 1),
('55' TV thông minh OLED 4K loại S95B', 'Samsung', 900, 1999,90, 1),
('Màn hình chơi game màn hình cong Mini-LED của Odyssey Ark Quantum', 'Samsung', 50, 2999.90, 1);

Bảng kết quả như hình:

Ví dụ 1 – Sử dụng Hàm lead() của SQL Server trên Tập kết quả

Ví dụ dưới đây sử dụng hàm lead() để trả về giá của sản phẩm tiếp theo.

lựa chọn
tên sản phẩm,
nhà chế tạo,
số lượng,
giá bán,
chì (giá,
1) qua (
đặt hàng theo số lượng)
từ
Mỹ phẩm;

Bảng kết quả:

Vì không có hàng nào từ cột cuối cùng nên hàm trả về NULL.

Ví dụ 2 – Sử dụng hàm lead() của SQL Server trên một tập hợp phân vùng

Chúng tôi cũng có thể tìm nạp sản phẩm tiếp theo trong một phân vùng nhất định. Ví dụ: chúng ta có thể phân vùng dữ liệu trên dựa trên nhà sản xuất và áp dụng hàm lead() trong mỗi phân vùng

Một ví dụ minh họa như hình:

lựa chọn
tên sản phẩm,
nhà chế tạo,
số lượng,
giá bán,
chì (giá,
1) qua (
phân vùng theo nhà sản xuất
đặt hàng theo số lượng)
từ
Mỹ phẩm;

Truy vấn ở trên sẽ phân chia các hàng dựa trên nhà sản xuất và lấy giá tiếp theo cho các giá trị trong mỗi phân vùng.

Trong trường hợp này, có ba phân vùng.

Sự kết luận

Trong bài đăng này, bạn đã hiểu các khối xây dựng của hàm lead() trong SQL Server. Bạn cũng đã học cách sử dụng hàm lead() trên tập hợp kết quả và phân vùng.