gpt4 book ai didi

xml - T-SQL 删除第一行 xml

转载 作者:行者123 更新时间:2023-12-04 05:19:31 27 4
gpt4 key购买 nike

我有以下 XML:

<row>
<el>Field1</el>
<el>Field2</el>
<el>Field3</el>
<el>Field4</el>
<el>Field5</el>
<el>Field6</el>
</row>
<row>
<el>R1C1</el>
<el>R1C2</el>
<el>R1C3</el>
<el>R1C4</el>
<el>R1C5</el>
<el>R1C6</el>
</row>
<row>
<el>R2C1</el>
<el>R2C2</el>
<el>R2C3</el>
<el>R2C4</el>
<el>R2C5</el>
<el>R2C6</el>
</row>
<row>

我想删除第一行?我需要这样做才能在表中插入给定 XML 结构的第二行和第三行。这就是我正在做的:
SET @TSVDataXML = '<row>' + REPLACE( ( '<el><![CDATA[' + REPLACE(@CommentText, CHAR(9), ']]></el><el><![CDATA[') + ']]></el>' ), CHAR(13), ']]></el></row><row><el><![CDATA[' ) + '</row>'
SELECT @TSVDataXML
INSERT INTO @ResultTable(Field1,Field2,Field3,Field4,Field5,Field6)
SELECT tbl.col.value('el[1]','NVARCHAR(20)')
,tbl.col.value('el[2]','NVARCHAR(20)')
,tbl.col.value('el[3]','NVARCHAR(20)')
,tbl.col.value('el[4]','NVARCHAR(20)')
,tbl.col.value('el[5]','NVARCHAR(20)')
,tbl.col.value('el[6]','NVARCHAR(20)')
FROM @TSVDataXML.nodes('//row') AS tbl(col)

因此,我的问题的替代解决方案是添加一个 where 子句,其中第一行没有插入。不幸的是,我不太擅长 XML 的东西。

任何建议、答案或文章都会有所帮助。

最佳答案

这将删除 XML 中的第一行。

set @TSVDataXML.modify('delete row[1]')

看看 delete (XML DML)

或者您可以使用 position() 排除节点 XPath 表达式中的第一行.
from @TSVDataXML.nodes('//row[position() > 1]') as tbl(col)

关于xml - T-SQL 删除第一行 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13815623/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com