STRING FUNCTIONS
NUMERIC/MATH FUNCTIONS
DATE/TIME FUNCTIONS
CONVERSION FUNCTIONS
CONFIGURATION FUNCTIONS
ADVANCED FUNCTIONS
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
Dự án mới của mình là gamehow.net, mời anh em ghé thăm và góp ý ạ.

Hàm LEAD trong SQL Server

Trong bài này mình sẽ hướng dẫn cách sử dụng hàm LEAD trong SQL Server thông qua cú pháp và ví dụ thực tế.

1. Mô tả

Hàm LEAD là một hàm phân tích cho phép bạn truy vấn nhiều hàng trong một bảng mà không cần phải nối bảng với chính nó. Nó trả về các giá trị từ hàng tiếp theo trong bảng.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

2. Cú pháp

Cú pháp của hàm LEAD trong SQL Server (Transact-SQL) là:

LEAD ( expression [, offset [, default] ] )
OVER ( [ query_partition_clause ] order_by_clause )

Trong đó:

  • expression: Một biểu thức có thể chứa các hàm dựng sẵn khác, nhưng không thể chứa bất kỳ hàm phân tích nào.
  • offset: Không bắt buộc. Nó là phần bù vật lý từ hàng hiện tại trong bảng. Nếu tham số này bị bỏ qua, mặc định là 1.
  • default: Không bắt buộc. Đó là giá trị được trả về nếu phần bù đi ra khỏi giới hạn của bảng. Nếu tham số này bị bỏ qua, mặc định là null.
  • query_partition_clause: Không bắt buộc. Nó được sử dụng để phân vùng kết quả thành các nhóm dựa trên một hoặc nhiều biểu thức.
  • order_by_clause: Không bắt buộc. Nó được sử dụng để sắp xếp dữ liệu trong mỗi phân vùng.

3. Version

Hàm LEAD có thể được sử dụng trong các phiên bản sau của SQL Server (Transact-SQL):

  • SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012

4. Ví dụ

Nếu chúng ta có một bảng employees chứa dữ liệu sau:

employee_number last_name first_name salary dept_id
12009 Sutherland Barbara 54000 45
34974 Yates Fred 80000 45
34987 Erickson Neil 42000 45
45001 Parker Sally 57500 30
75623 Gates Steve 65000 30

Và chúng ta chạy câu lệnh SQL sau:

SELECT dept_id, last_name, salary,
LEAD (salary,1) OVER (ORDER BY salary) AS next_highest_salary
FROM employees;

Nó sẽ trả về kết quả sau:

dept_id last_name salary next_highest_salary
45 Erickson 42000 54000
45 Sutherland 54000 57500
30 Parker 57500 65000
30 Gates 65000 80000
45 Yates 80000 NULL

Trong ví dụ này, hàm LEAD sẽ sắp xếp theo thứ tự tăng dần tất cả các giá trị salary trong bảng employees và sau đó trả về mức lương cao nhất tiếp theo kể từ sử dụng offset là 1.

Nếu sử dụng offset bằng 2 thay vào đó, nó sẽ trả lại mức lương cao hơn 2 mức lương. Nếu sử dụng offset bằng 3, nó sẽ trả lại mức lương cao hơn 3 .... và cứ thế.

Sử dụng Partitions

Bây giờ hãy xem xét một ví dụ phức tạp hơn trong đó sử dụng mệnh đề truy vấn partition để trả lại mức lương cao nhất tiếp theo cho mỗi nhân viên trong bộ phận của họ.

Nhập câu lệnh SQL sau:

SELECT dept_id, last_name, salary,
LEAD (salary,1) OVER (PARTITION BY dept_id ORDER BY salary) AS next_highest_salary
FROM employees;

Nó sẽ trả về kết quả sau:

dept_id last_name salary next_highest_salary
30 Parker 57500 65000
30 Gates 65000 NULL
45 Erickson 42000 54000
45 Sutherland 54000 80000
45 Yates 80000 NULL

 

Cùng chuyên mục:

Hàm CHAR trong SQL Server

Hàm CHAR trong SQL Server

Cách sử dụng hàm CHAR trong SQL Server

Hàm CHARINDEX trong SQL Server

Hàm CHARINDEX trong SQL Server

Cách sử dụng hàm CHARINDEX trong SQL Server

Hàm CONCAT trong SQL Server

Hàm CONCAT trong SQL Server

Cách sử dụng hàm CONCAT trong SQL Server

Hàm + trong SQL Server

Hàm + trong SQL Server

Cách sử dụng hàm + trong SQL Server

Hàm DATALENGTH trong SQL Server

Hàm DATALENGTH trong SQL Server

Cách sử dụng hàm DATALENGTH trong SQL Server

Hàm LEFT trong SQL Server

Hàm LEFT trong SQL Server

Cách sử dụng hàm LEFT trong SQL Server

Hàm LEN trong SQL Server

Hàm LEN trong SQL Server

Cách sử dụng hàm LEN trong SQL Server

Hàm LOWER trong SQL Server

Hàm LOWER trong SQL Server

Cách sử dụng hàm LOWER trong SQL Server

Hàm LTRIM trong SQL Server

Hàm LTRIM trong SQL Server

Cách sử dụng hàm LTRIM trong SQL Server

Hàm NCHAR trong SQL Server

Hàm NCHAR trong SQL Server

Cách sử dụng hàm NCHAR trong SQL Server

Hàm PATINDEX trong SQL Server

Hàm PATINDEX trong SQL Server

Cách sử dụng hàm PATINDEX trong SQL Server

Hàm REPLACE trong SQL Server

Hàm REPLACE trong SQL Server

Cách sử dụng hàm REPLACE trong SQL Server

Hàm RIGHT trong SQL Server

Hàm RIGHT trong SQL Server

Cách sử dụng hàm RIGHT trong SQL Server

Hàm RTRIM trong SQL Server

Hàm RTRIM trong SQL Server

Cách sử dụng hàm RTRIM trong SQL Server

Hàm SPACE trong SQL Server

Hàm SPACE trong SQL Server

Cách sử dụng hàm SPACE trong SQL Server

Hàm STR trong SQL Server

Hàm STR trong SQL Server

Cách sử dụng hàm STR trong SQL Server

Hàm UPPER trong SQL Server

Hàm UPPER trong SQL Server

Cách sử dụng hàm UPPER trong SQL Server

Hàm SUBSTRING trong SQL Server

Hàm SUBSTRING trong SQL Server

Cách sử dụng hàm SUBSTRING trong SQL Server

Hàm STUFF trong SQL Server

Hàm STUFF trong SQL Server

Cách sử dụng hàm STUFF trong SQL Server

Hàm ABS trong SQL Server

Hàm ABS trong SQL Server

Cách sử dụng hàm ABS trong SQL Server

Top