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

FOR XML PATH (''):Bỏ qua các ký tự đặc biệt

XML bạn nhận được là chính xác. Đó là XML , không phải văn bản và có thể đọc được dưới dạng XML bởi trình phân tích cú pháp XML. Các ký tự đặc biệt được thoát đúng cách, đúng như vậy. Bất kỳ mô-đun máy khách nào bạn có sử dụng XML đó sẽ phân tích cú pháp nó dưới dạng XML, không phải dưới dạng văn bản, và sau đó nó sẽ hiển thị đúng cách.

Cập nhật:

Trong trường hợp không rõ ràng, tất cả những gì bạn cần làm trong truy vấn của mình là coi XML là XML và văn bản là văn bản, không kết hợp XML dưới dạng văn bản, tức là:

;WITH CodeValues AS
    (
    SELECT
        Number,SUBSTRING(@R,Number,1) AS R,ASCII(SUBSTRING(@U,Number,1)) AS UA
        FROM Numbers
        WHERE Number<=LEN(@R)
    )
, XmlValues AS (
SELECT
        t.RowID
            ,(SELECT
                  ''+c.R
                  FROM Numbers               n
                      INNER JOIN CodeValues  c ON ASCII(SUBSTRING(t.Unreadable,n.Number,1))=c.UA
                  WHERE n.Number<=LEN(t.Unreadable) 
                  FOR XML PATH(''), TYPE
             ) AS readable
        FROM @TestTable t)
SELECT x.RowId,
    x.readable.value('.', 'VARCHAR(8000)') as readable
    FROM XmlValues AS x



  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 cách nào để tách một chuỗi để tôi có thể truy cập mục x?

  2. Cấu hình theo phạm vi cơ sở dữ liệu SQL Server và sửa kế hoạch tự động

  3. SQL Server:Mặt tối của NVARCHAR

  4. Cách chuyển đổi chuỗi thành ngày / giờ trong SQL Server bằng CONVERT ()

  5. CEILING () Ví dụ trong SQL Server