这一切都在 SQL Server 2012 上。
我有 TSQL 来创建一个 XQuery 语句来切碎并插入一些 XML
代码看起来像这样:
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
语句的方式不符。
如果有更好的方法,我完全赞成 - 只要我不必两次粉碎数据。
在此先感谢您的时间!希望有人可以帮我解决这个问题!