これはすべて SQL Server 2012 上にあります。
XQueryステートメントを作成してXMLを細断して挿入するTSQLがあります
コードは次のようになります。
declare @xmlasXML xml
set @xmlasXML = '
<data Store="R262">
<s Item1="10" Item2="-1" />
<s Item1="33.2" Item2="55" />
</data>
'
insert TableX(OldPrice, Price)
select
c.value('@Item1[1]','decimal(15,2)') as OldPrice,
c.value('@ut[1]','int') as Price
FROM
@xmlasXML.nodes('/data/s') T(c)
上記の挿入ステートメントにいくつかのデータ検証を追加したい (データを着陸させたくないので、すべてのデータ ポイントを検証するために再びデータをかき回す必要がある)...
データ検証と言うとき、私が言っていることは次のとおりです。
- Item1 の値が 1 ~ 15 の場合は挿入に使用し、それ以外の場合は NULL を挿入します
- Item2 の値が -10 ~ 1000 の場合は挿入に使用し、それ以外の場合は NULL を挿入します。
XQuery に関する情報を見たことがありますが、XQuery には処理できる条件付きロジックがあると思いますが、INSERT
/SELECT
ステートメントを作成して実行する方法と一致する例は見つかりませんでした。
より良い方法があれば、データを 2 回細断処理する必要がない限り、すべて賛成です。
お時間をいただきありがとうございます。誰かが私がこれをノックアウトするのを手伝ってくれることを願っています!