【发布时间】:2012-12-11 07:35:12
【问题描述】:
我有以下 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 tsql sql-server-2012 row