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

Chuyển đổi sang html bằng xquery?

Tôi đã tìm ra một cách ít hack hơn. Vấn đề duy nhất là nó sẽ tạo <td /> thay vì <td></td> nếu giá trị là null. Nó sẽ gây ra một số vấn đề về bố cục khi email được gửi đến một số máy khách Outlook cũ.

declare @table varchar(max) = '(select 1 a, ''one'' b union all select 2, ''two'') t '
declare @sql varchar(max) = '
    declare @xml xml = (
        select * from ' + @table + ' 
        for xml path(''tr''), root(''table'')
    ); 
    select @xml'
declare @tmp table (x xml)
insert into @tmp exec(@sql) 
declare @x xml = (select x from @tmp)
select @x.query('<body>
<table>
  <tr>
    {for $c in /table/tr[1]/* return element th { local-name($c) } }
  </tr>
  {
    for $r in /table/* 
    return element tr { for $c in $r/* return element td { data($c) } } 
  }
</table>
</body>')


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để xoay bảng cho năm trong SQL?

  2. Làm cách nào để tham số hóa chuỗi kết nối cơ sở dữ liệu trong một gói SSIS?

  3. Trả về giá trị từ câu lệnh INSERT trong SQL Server 2008

  4. Khắc phục sự cố Microsoft SQL Server Error 18456

  5. Các loại con trỏ máy chủ SQL - Con trỏ động | Hướng dẫn sử dụng SQL Server / TSQL