从 SQL 服务器 table 列的行过滤记录

Filter a record from a row from SQL Server table column

我有一个 table,其中有一列包含如下数据:

<E><A>a</A><B>b</B><C>c</C></E>

我创建了一个新的 table,现在我需要将每个标签值插入到新的 table 的单独列中。我是 SQL 的新手,不知道如何执行此操作。

最后,数据应该是这样的:

Column names    A | B | C  
Row             a | b | c

能否请您提供任何解决方案?

提前致谢。

这样的事情可以帮助你:

CREATE TABLE Table1
(
    id int,
    xmlBody xml
);

INSERT INTO Table1 VALUES (1, '<E><A>a</A><B>b</B><C>c</C></E>');
INSERT INTO Table1 VALUES (2, '<E><A>a1</A><B>b1</B><C>c1</C></E>');
INSERT INTO Table1 VALUES (2, '<E><A>a2</A><B>b2</B><C>c2</C></E>');

SELECT 
    xmlBody.value('(/E/A)[1]', 'varchar(20)') as A,
    xmlBody.value('(/E/B)[1]', 'varchar(20)') as B,
    xmlBody.value('(/E/C)[1]', 'varchar(20)') as C
FROM Table1