gpt4 book ai didi

sql-server-2008 - 从 XML 列中获取值

转载 作者:行者123 更新时间:2023-12-04 07:04:59 25 4
gpt4 key购买 nike

我有一个带有此值的 XML 列

<sso_links>
<linktype>mytype</linktype>
<url>http://mydomain.com</url>
<linktype>mytype2</linktype>
<url>http://somedomain.com</url>
</sso_links>

我尝试使用 SQL 按值查询,但这仅返回标量类型
SELECT XMLCOLUMN.value('//linktype[1]', varchar(max)),
XMLCOLUMN.value('//url[1]', varchar(max))
from table
where someid = '1'

这从 XML 生成了 2 行。如何输出所有值?

最佳答案

创建表

CREATE TABLE docs (pk INT PRIMARY KEY, xCol XML not null)

插入值
INSERT INTO docs VALUES (1, '<sso_links>
<linktype>mytype</linktype>
<url>http://mydomain.com</url>
<linktype>mytype2</linktype>
<url>http://somedomain.com</url>
</sso_links>')

现在选择你想要的值
SELECT xCol.value('(/sso_links//linktype/node())[1]', 'nvarchar(max)') AS linktype
,xCol.value('(/sso_links//url/node())[1]', 'nvarchar(max)') AS url
,xCol.value('(/sso_links//linktype/node())[2]', 'nvarchar(max)') AS linktype2
,xCol.value('(/sso_links//url/node())[2]', 'nvarchar(max)') AS url2
FROM docs
WHERE pk = 1

试一试!

关于sql-server-2008 - 从 XML 列中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9561093/

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