sql-server-2005 – 在SQL Server中使用value()从xml列获取多条记录

sql仅返回第一个Activity元素.我如何选择它们?如果我删除查询中的[1],我会收到“value()需要单例”的错误.
DECLARE @myDoc xml
    SET @myDoc = 
    '<Root>
        <Activities>
            <Activity>This is activity one</Activity>
            <Activity>This is activity two</Activity>
            <Activity>This is activity three</Activity>
        </Activities>
    </Root>'

    SELECT @myDoc.value('(/Root/Activities/Activity)[1]','varchar(100)' )

解决方法

谢谢Ed,但我找到了一个更简单的版本:
SELECT T.C.value('.','varchar(100)') as activity
FROM @myDoc.nodes('(/Root/Activities/Activity)') as T(C)

虽然从你的“不必要的复杂”例子看起来令人担忧的简单……

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 &#39;EastRiver&#39; 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...