Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Trường bảng cha cập nhật SQL dựa trên nhiều hàng bảng con

update parent
set longtext =
    stuff((
    select ',' + c.char + ': ' + c.val
    from child c
    where c.uid = parent.uid
    for xml path(''), type).value('.','nvarchar(max)'),1,1,'');

Tôi đã cập nhật SQLFiddle của bạn với giải pháp.

  1. STUFF () chức năng loại bỏ ',' hàng đầu (dấu phẩy) từ đặc điểm đầu tiên.

  2. ĐỐI VỚI XML để tạo tài liệu XML từ kết quả truy vấn. Đây là một thủ thuật nổi tiếng với SQL Server - vì cột không được đặt tên, không có phần tử nào được tạo ra và chỉ xuất văn bản thô (của mỗi hàng), được trộn với nhau thành một hàng duy nhất.

Rất ít bài báo trên internet cố gắng giải thích nó một cách chi tiết, vì đoạn mã này chỉ được xem như một lời giải thích.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cách phân tích cú pháp xml với ký tự đặc biệt trong máy chủ sql

  2. SQL Server 2008 và so sánh ký tự Unicode

  3. Tìm kiếm siêu dữ liệu SQL Server 2005 để lấy các tham số thủ tục được lưu trữ

  4. Các bản sửa lỗi cho sự cố tạo lại chỉ mục trực tuyến SQL Server 2012 &2014

  5. Hàm Cross Tab trong SQL