Tìm hiểu về hàm Row_Number() và cách sử dụng qua ví dụ thực tế trong SQL Server

Trong bài viết này Stanford sẽ giới thiệu tới bạn về hàm row_number() và cách sử dụng của nó qua ví dụ thực tế trên SQL Server. Đây là kiến thức rất hay mà các bạn đang học SQL không thể bỏ qua.

Hàm ROW_NUMBER() trong SQL Server được sử dụng để gán một số nguyên tuần tự cho mỗi hàng trong một tập kết quả. Đây là một hàm cửa sổ (window function) rất hữu ích trong nhiều tình huống, chẳng hạn như phân trang dữ liệu hoặc đánh số thứ tự các hàng trong một nhóm.

Cú pháp của ROW_NUMBER()

ROW_NUMBER() OVER (
    [PARTITION BY partition_expression, ...]
    ORDER BY sort_expression [ASC | DESC], ...
)
  • PARTITION BY: Tùy chọn, dùng để chia tập kết quả thành các nhóm. Hàm ROW_NUMBER() sẽ được áp dụng riêng cho từng nhóm này.
  • ORDER BY: Bắt buộc, xác định thứ tự của các hàng trong mỗi nhóm.

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

1. Sử dụng ROW_NUMBER() để đánh số thứ tự các hàng trong một tập kết quả

Select Row_Number() Over(order by MaNV) as OrderNum, MaNV, HoTen, DienThoai, Email, DiaChi
from NhanVien;
Trong ví dụ này, hàm ROW_NUMBER() sẽ gán số thứ tự cho mỗi hàng dựa trên thứ tự của cột MaNV. Giao diện hiển thị như hình dưới đây:


2. Sử dụng ROW_NUMBER() với PARTITION BY

Select Row_Number() Over(Partition by MaPhong order by MaNV) as OrderNum, MaPhong, MaNV, HoTen, DienThoai, Email, DiaChi
from NhanVien;
Ví dụ này sử dụng PARTITION BY để chia tập kết quả thành các nhóm dựa trên cột MaPhong. Số thứ tự sẽ được đặt lại từ đầu khi giá trị của MaPhong thay đổi.

3. Sử dụng ROW_NUMBER() để phân trang dữ liệu

With NhanVienPage as (
Select Row_Number() Over(order by MaNV) as OrderNum, MaNV, HoTen, DienThoai, Email, DiaChi
from NhanVien)
Select * from NhanVienPage where OrderNum between 11 and 20;
Trong ví dụ này, chúng ta sử dụng ROW_NUMBER() để đánh số thứ tự các hàng và sau đó chọn các hàng từ 11 đến 20, tương ứng với trang thứ hai của dữ liệu.

Những ví dụ trên giúp bạn hiểu rõ hơn về cách sử dụng hàm ROW_NUMBER() trong SQL Server. Bạn có thể áp dụng các kỹ thuật này vào các tình huống cụ thể trong hệ thống của mình trong quá trình học SQL cũng như công việc của mình nhé.

Bên cạnh đó bạn muốn được đào tạo bài bản về SQL từ cơ bản đến nâng cao ? Đăng ký tham gia ngay khóa học sql cùng chuyên gia giàu kinh nghiệm Stanford tại đây: http://bit.ly/2SLPYFF và nhận ưu đãi hấp dẫn của Stanford trong thời gian này. Bạn có thể gọi theo hotline: 0963 723 236 - 0866 586 366 để được gọi lại tư vấn trực tiếp nhé.

=============================
☎ STANFORD – ĐÀO TẠO VÀ PHÁT TRIỂN CÔNG NGHỆ
Hotline: 0963 723 236 - 0866 586 366
Website: https://stanford.com.vn
Facebook: http://bit.ly/2FN0TYb
Youtube: http://bit.ly/2TkKT7I

Tags: hàm row_number trong SQL Server, sử dụng row_number