sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan vælger man værdien af ​​xsi:type-attributten i SQL Server?

Uden at angive samling fungerer dette fint for mig:

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)')

Kan du sende indholdet af search.SearchParameters ?

Opdatering:

På skemabundet XML , det ser ud til at være umuligt.

Du kan caste din kolonne til en freetype XML :

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)')

(men du vil ikke være i stand til at bruge XML indekser af en hvilken som helst på din kolonne), eller udfør en boolsk kontrol af en bestemt type:

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. Hvad er MELLEM logisk operatør i SQL Server - SQL Server / TSQL Tutorial Del 124

  2. tjek forbindelsen fra C# app til oracle 10g database

  3. Slet med Join i MySQL

  4. sqoop eksport fra hdfs til oracle Fejl