2017-11-01 11 views
1

皆さんは皆がうまくやってくれることを願っています。私は、XMLのすべてのノードに属性値を含めるSQLクエリが必要な要件があります。次のスクリプトのID値は、すべてのノードに属性.Sampleコードとして入力し、参照するようにしてください。XMLのすべてのノードに属性値を含めるT-sqlクエリ

サンプルスクリプト:私が試し

CREATE TABLE XMLGEN(ID INT,A VARCHAR(255),B VARCHAR(255)) 

INSERT INTO XMLGEN SELECT 1,'a1','b1' 
        union all SELECT 2,'a2','b2' 
        union all SELECT 3,'a3','b3' 
        union all SELECT 4,'a4','b4' 
        union all SELECT 5,'a5','b5' 

クエリ:

select ID as '@Attribute', * from XMLGEN FOR XML PATH('ImportData'), TYPE,root('root') 

出力:

<root> 
    <ImportData Attribute="1"> 
    <ID>1</ID> 
    <A>a1</A> 
    <B>b1</B> 
    </ImportData> 
    <ImportData Attribute="2"> 
    <ID>2</ID> 
    <A>a2</A> 
    <B>b2</B> 
    </ImportData> 
    <ImportData Attribute="3"> 
    <ID>3</ID> 
    <A>a3</A> 
    <B>b3</B> 
    </ImportData> 
    <ImportData Attribute="4"> 
    <ID>4</ID> 
    <A>a4</A> 
    <B>b4</B> 
    </ImportData> 
    <ImportData Attribute="5"> 
    <ID>5</ID> 
    <A>a5</A> 
    <B>b5</B> 
    </ImportData> 
</root> 

予想される出力:

<root> 
    <ImportData> 
    <ID Attribute="1">1</ID> 
    <A Attribute="1">a1</A> 
    <B Attribute="1">b1</B> 
    </ImportData> 
    <ImportData> 
    <ID Attribute="2">2</ID> 
    <A Attribute="2">a2</A> 
    <B Attribute="2">b2</B> 
    </ImportData> 
    <ImportData> 
    <ID Attribute="3">3</ID> 
    <A Attribute="3">a3</A> 
    <B Attribute="3">b3</B> 
    </ImportData> 
    <ImportData> 
    <ID Attribute="4">4</ID> 
    <A Attribute="4">a4</A> 
    <B Attribute="4">b4</B> 
    </ImportData> 
    <ImportData> 
    <ID Attribute="5">5</ID> 
    <A Attribute="5">a5</A> 
    <B Attribute="5">b5</B> 
    </ImportData> 
</root> 

誰でもクエリを作成するのに役立ちますか?????

答えて

3
select 
    ID as [ID/@Attribute] 
    ,ID as [ID] 
    ,ID as [A/@Attribute] 
    ,A as [A] 
    ,ID as [B/@Attribute] 
    ,B as [B] 
from XMLGEN FOR XML PATH('ImportData'), TYPE,root('root') 
+2

コードのみの回答で問題を解決できる場合がありますが、将来のユーザーにとって理解しやすく便利な説明がいくつかあります。 –

関連する問題