Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [SQL Server] Phân trang danh sách sản phẩm

    Website bán đồ công nghệ TechNEU hiển thị sản phẩm theo trang, mỗi trang 4 sản phẩm, sắp theo giá giảm dần. Dữ liệu trong bảng sanpham:

    Cột Kiểu Ý nghĩa
    ma INT mã sản phẩm
    ten NVARCHAR(100) tên sản phẩm
    gia INT giá bán (nghìn đồng)

    Hãy in nội dung trang số 2: bỏ qua 3 sản phẩm đắt nhất đầu tiên rồi lấy 4 sản phẩm kế tiếp. Thứ tự duyệt: giá giảm dần, cùng giá thì mã nhỏ hơn đứng trước. Nếu không đủ dữ liệu thì in những dòng còn lại (có thể rỗng).

    Lưu ý: dùng đúng cơ chế phân trang của T-SQL, không dùng LIMIT.

    • Định dạng đầu vào:

      SETUP SQL tạo bảng sanpham và chèn dữ liệu.

    • Ràng buộc đầu vào:

      1≤1 \le1≤ số dòng ≤200\le 200≤200; 0≤gia≤1060 \le gia \le 10^60≤gia≤106.

    • Định dạng đầu ra:

      Tối đa 4 dòng, mỗi dòng gồm: ma, ten, gia — theo thứ tự gia giảm dần, ma tăng dần (sau khi đã bỏ 3 dòng đầu).

    Ví dụ:

    Đầu vào:

    CREATE TABLE sanpham (ma INT, ten NVARCHAR(100), gia INT);
    INSERT INTO sanpham VALUES (1, N'Laptop Dell XPS', 25000),(2, N'Laptop HP Envy', 23000),(3, N'iPhone 15', 30000),(4, N'Samsung S24', 28000),(5, N'Xiaomi 14', 12000),(6, N'Oppo Reno', 11000),(7, N'Tai nghe Sony', 2000),(8, N'Sac du phong', 1500),(9, N'Op lung', 300),(10, N'Cap sac C', 250);

    Đầu ra:

    2	Laptop HP Envy	23000
    5	Xiaomi 14	12000
    6	Oppo Reno	11000
    7	Tai nghe Sony	2000

    Giải thích:

    Sắp giá giảm dần: 30000, 28000, 25000 là 3 dòng bị bỏ qua; trang 2 gồm 4 dòng kế tiếp: (2, Laptop HP Envy, 23000), (5, Xiaomi 14, 12000), (6, Oppo Reno, 11000), (7, Tai nghe Sony, 2000).

    Đang tải editor...