sql >> データベース >  >> RDS >> Sqlserver

SQL Server で xsi:type 属性の値を選択する方法は?

    コレクションを指定しなくても、これでうまくいきます:

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

    search.SearchParameters の内容を投稿していただけませんか ?

    更新:

    スキーマにバインドされた XML について 、これは不可能のようです。

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

    (ただし、XML は使用できません) 列の任意のインデックス)、または特定の型でブール チェックを実行します:

    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. PostgreSQLトランザクション内でリアルタイムを取得するにはどうすればよいですか?

    2. MySQL-正しい左結合構文を持つ3つのテーブルを選択します

    3. トランザクション、行レベルのロック、および外部キーをサポートします

    4. postgresのインストール中に入力したパスワードを忘れました