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

Làm cách nào để chọn giá trị của thuộc tính xsi:type trong SQL Server?

Không chỉ định bộ sưu tập, điều này phù hợp với tôi:

DECLARE @X XML
SET @x = N' 
<parameters xmlns="http://www.educations.com/Search/Parameters.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <parameter  xsi:type="category" categoryID="38" />
</parameters>'
;

WITH    XMLNAMESPACES
        (
        'http://www.educations.com/Search/Parameters.xsd' as p,
        'http://www.w3.org/2001/XMLSchema-instance' as xsi
        )
SELECT  @X.value('(/p:parameters/p:parameter/@xsi:type)[1]','nvarchar(max)')

Bạn có thể vui lòng đăng nội dung của search.SearchParameters ?

Cập nhật:

Trên XML có giới hạn lược đồ , điều này dường như là không thể.

Bạn có thể truyền cột của mình thành một XML freetype :

WITH    XMLNAMESPACES
        (
        'http://www.educations.com/Search/Parameters.xsd' as p,
        'http://www.w3.org/2001/XMLSchema-instance' as xsi
        )
SELECT  CAST(@X AS XML).value('(/p:parameters/p:parameter/@xsi:type)[1]','nvarchar(max)')

(nhưng bạn sẽ không thể sử dụng XML của bất kỳ chỉ mục nào trên cột của bạn) hoặc thực hiện kiểm tra boolean trên một loại cụ thể:

WITH XMLNAMESPACES
        (
        'http://www.educations.com/Search/Parameters.xsd' as p
        )
SELECT @X.query('(/p:parameters/p:parameter)[1] instance of element(*, p:category?)')


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Định nghĩa báo cáo SSRS mới hơn Máy chủ

  2. Truyền đối chiếu các biến nvarchar trong t-sql

  3. Sử dụng bộ giá trị trong mệnh đề SQL IN

  4. DBA - Cách giết tất cả các quy trình cơ sở dữ liệu trên máy chủ SQL

  5. Nhận danh sách tất cả các cột rỗng và không rỗng trong cơ sở dữ liệu SQL Server - Hướng dẫn SQL Server / T-SQL Phần 53