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

    solution

    Đề bài: [SQL Server] Gộp danh sách môn học theo lớp

    Trường đại học lưu việc đăng ký môn của sinh viên trong bảng dangky. Phòng đào tạo muốn với mỗi lop, gộp danh sách môn (duy nhất, không lặp) thành một chuỗi.

    Cột Kiểu Ý nghĩa
    lop nvarchar(20) Mã lớp
    mon nvarchar(40) Tên môn

    Tạo cột danhsachmon là các môn của lớp nối bằng dấu , (phẩy + cách), sắp xếp tên môn tăng dần. Nếu lớp đăng ký trùng môn nhiều lần thì chỉ liệt kê một lần.

    Ví dụ lớp K65A đăng ký 'Toan', 'Ly', 'Toan' thì danhsachmon = Ly, Toan.

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

      SETUP SQL tạo bảng dangky và chèn đăng ký môn của các lớp.

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

      Một (lop, mon) có thể xuất hiện nhiều lần nhưng chỉ gộp một lần. STRING_AGG có WITHIN GROUP (ORDER BY mon).

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

      Hai cột: lop, danhsachmon. Sắp xếp theo lop tăng dần.

    Ví dụ:

    Đầu vào:

    CREATE TABLE dangky (lop nvarchar(20), mon nvarchar(40));
    INSERT INTO dangky VALUES
    (N'K65A',N'Toan'),(N'K65A',N'Ly'),(N'K65A',N'Toan'),
    (N'K65B',N'Hoa');

    Đầu ra:

    K65A	Ly, Toan
    K65B	Hoa

    Giải thích:

    Lớp K65A đăng ký Toan hai lần nhưng chỉ gộp một lần, sắp theo tên: Ly, Toan. Lớp K65B chỉ có Hoa.

    Đang tải editor...