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

    solution

    Đề bài: [SQL Server] Chuẩn hóa danh sách thẻ (tag)

    Bảng baiviet lưu các thẻ của bài viết dưới dạng chuỗi nối bằng dấu phẩy (có thể có khoảng trắng thừa). Cần tách, bỏ trùng, sắp xếp rồi nối lại thành chuỗi chuẩn.

    Cột Kiểu Ý nghĩa
    mabai int Mã bài viết
    tags nvarchar(200) Các thẻ nối bằng ','

    Dùng STRING_SPLIT để tách, TRIM để bỏ khoảng trắng, loại thẻ rỗng, lấy DISTINCT, rồi STRING_AGG nối bằng , theo thứ tự tăng dần.

    Ví dụ 'sql, db ,sql' → db, sql.

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

      SETUP SQL tạo bảng baiviet và chèn chuỗi thẻ.

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

      Thẻ có thể trùng/có khoảng trắng. Bỏ thẻ rỗng. STRING_AGG có WITHIN GROUP (ORDER BY).

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

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

    Ví dụ:

    Đầu vào:

    CREATE TABLE baiviet (mabai int, tags nvarchar(200));
    INSERT INTO baiviet VALUES (1,N'sql, db ,sql'),(2,N'web');

    Đầu ra:

    1	db, sql
    2	web

    Giải thích:

    Bài 1 tách thành 'sql','db','sql', bỏ trùng và sắp xếp còn 'db, sql'. Bài 2 chỉ có 'web'.

    Đang tải editor...