Posts Tagged ‘ROW_NUMBER’

 

Sử Dụng Hàm ROW_NUMBER

Hàm ROW_NUMBER được đưa vào từ bản 2005, dùng để trả về một con số tuần tự gắn với mỗi bản ghi (do đó có tên như vậy, số của bản ghi). Hàm này giúp giải quyết một số bài toán dễ dàng hơn. Bài viết này giới thiệu hai ứng dụng của hàm ROW_NUMBER, nếu bạn có sử dụng hàm này vào những tình huống khác xin hãy bổ sung ở phần comment.

1. Phân trang: Đây là ứng dụng khá phổ biến của hàm ROW_NUMBER và chỉ khai thác một dạng thức đơn giản của hàm. Trong ví dụ dưới đây tôi dựa vào dữ liệu từ database AdventureWorks. Giả sử tôi có một trang web hiển thị các đơn bán hàng trong tháng 6/2004. Vì có khá nhiều đơn hàng (hơn 2000) nên tôi muốn chia làm nhiều trang với mỗi trang chỉ hiển thị 100 đơn hàng. Khi muốn liệt kê đơn hàng cho trang thứ hai (đơn hàng từ 101-200) tôi có thể dùng code như sau: … đọc tiếp »

Posted on 11/10/2011 by Vũ Huy Tâm | Categories: SQL Server Programming, Stored Procedure

Lấy Một Số Bản Ghi Ngẫu Nhiên

Khi bạn cần lấy về ngẫu nhiên một số bản ghi trong bảng (ví dụ để hiện một bài báo ngẫu nhiên trên trang web, hoặc khi bạn muốn xem qua bằng mắt thường xem dữ liệu có vấn đề gì không), bạn có thể dùng đoạn code sau:

SELECT TOP 5 *
FROM dbo.Tblxyz
ORDER BY NEWID()

Hàm NEWID() mỗi lần được gọi trả về một giá trị kiểu uniqueidentifier bất kỳ và duy nhất, vì thế mệnh đề ORDER BY NEWID() giúp cho câu lệnh chọn ra 5 bản ghi hoàn toàn ngẫu nhiên.

Một tình huống phức tạp hơn là khi bạn cần lấy về một số bản ghi ngẫu nhiên cho mỗi “chủng loại”. Ví dụ bạn có khách hàng từ tất cả các tỉnh thành trong cả nước, và từ mỗi tỉnh thành bạn muốn lấy về ngẫu nhiên 5 khách hàng. … đọc tiếp »

Posted on 23/8/2010 by Vũ Huy Tâm | Categories: SQL Server Programming

Loại Bỏ Bản Ghi Trùng Trong Bảng

Khi làm việc với dữ liệu, có thể bạn gặp những tình huống trong đó, dữ liệu trong bảng có những bản ghi trùng nhau ở những trường đáng nhẽ ra không được trùng. Ví dụ bạn có 1 bảng chứa danh sách các địa chỉ email tên là DiaChiEmail gồm có các trường: ID, Email, và Ten; … đọc tiếp »

Posted on 3/5/2010 by Vũ Huy Tâm | Categories: SQL Server Programming