にSQL Server 2005でのTSQLを使用してSQLテーブルのキーと値のペアXML
ID Key Value -------------------------- 1 F1 2 2 F2 5 3 F3 1
を次のように私はこれが
<Values>
<F1>2</F1>
<F2>5</F2>
<F3>1</F3>
</Values>
としてXMLに変換することができますどのように、データテーブルを持ってください。助けて。
にSQL Server 2005でのTSQLを使用してSQLテーブルのキーと値のペアXML
ID Key Value -------------------------- 1 F1 2 2 F2 5 3 F3 1
を次のように私はこれが
<Values>
<F1>2</F1>
<F2>5</F2>
<F3>1</F3>
</Values>
としてXMLに変換することができますどのように、データテーブルを持ってください。助けて。
ではなく、さらに難解for xml explicit
あなたが列に基づいてXMLタグに名前を付けることができます。多くの異なるキーがある場合
select case when [key] = 'F1' then [value] end as [F1]
, case when [key] = 'F2' then [value] end as [F2]
, case when [key] = 'F3' then [value] end as [F3]
from @t
for xml path(''), root('Values')
を、手動でXML文字列を構築することができ:
declare @output varchar(max)
set @output = '<Values>'
select @output = @output +
'<' + [key] + '>' +
CAST([value] as varchar(32)) +
'</' + [key] + '>'
from @t
set @output = @output + '</Values>'
select @output
テストデータ:
を、いくつかの異なるキーがある場合、あなたはそれらを列挙することによってすることを回避することができますdeclare @t table (id int, [key] varchar(3), value int)
insert @t values (1, 'F1', 2)
insert @t values (2, 'F2', 5)
insert @t values (3, 'F3', 1)
両方の選択肢の印刷:
<Values><F1>2</F1><F2>5</F2><F3>1</F3></Values>
テーブルをクエリし、配列を配列に格納し、(おそらくサーバー)スクリプト言語を使用して(ファイルまたはスクリーンに)出力するのはなぜですか? SqlServerにこのような出力をさせる方法があるなら、私はそれを認識していませんが、かなり多くの言語でシンプルにすべきです。私の知る限りでは
擬似コード
LET arr = array of table rows
print "<Values>"
foreach in arr as row
print "<" + row['Key'] + ">" + row['Value'] + "</" + row['Key'] + ">"
end foreach
print "</Values>"
私はストアドプロシージャ内でデータを引き出すことなくそれをやりたかったのです。だから、これは私にとっては良い選択ではありませんでした。回答ありがとうございます。 – Dimuthu
これは素晴らしい動作します。私は "for xml explicit"と試していましたが、通過できませんでした。ありがとう、これは私の質問に答えた。 – Dimuthu