阅读:3042 回复:3
Ricardo
18

帖子

120

跟帖

1326

积分

黄金榴莲
黄金榴莲
  • 社区居民

[已解决]sql语句查询多人xml

楼主#
更多 发布于:2017-04-13 10:11
SQL语句如何解析多人xml字段,关联User表查询出姓名,用于做报表。(sql server)



产品版本:V9.2
你若盛开,蝴蝶自来。
岩竹玉雨
20

帖子

840

跟帖

205241

积分

论坛版主
论坛版主
  • 社区居民
  • 忠实会员
1楼#
发布于:2017-04-13 10:45
帖内置顶  –    –  2017-04-24 18:33
 哦,多人字段存的是xml,我的处理方法是,自己写了个sql函数。

ALTER FUNCTION [dbo].[SearchUserName]
(
    @temp XML
)
RETURNS NVARCHAR(50)
AS
BEGIN
    -- Declare the return variable here
    DECLARE @nameList NVARCHAR(50)
 
    -- Add the T-SQL statements to compute the return value here
    SELECT @nameList =(select Name+','   FROM dbo.OT_User
WHERE ObjectID IN (SELECT temp.value('.', 'nvarchar(50)') AS id
FROM @temp.nodes('/ArrayOfString/string') o(temp)) for xml path('')
 )
 
    -- Return the result of the function
    RETURN  SUBSTRING(@nameList, 1, len(@nameList)-1) 
 
END
发问题贴的时候,可以@一下我,我就能更快的知道了
Ricardo
18

帖子

120

跟帖

1326

积分

黄金榴莲
黄金榴莲
  • 社区居民
2楼#
发布于:2017-04-13 10:12
你若盛开,蝴蝶自来。
岩竹玉雨
20

帖子

840

跟帖

205241

积分

论坛版主
论坛版主
  • 社区居民
  • 忠实会员
3楼#
发布于:2017-04-13 10:45
 哦,多人字段存的是xml,我的处理方法是,自己写了个sql函数。

ALTER FUNCTION [dbo].[SearchUserName]
(
    @temp XML
)
RETURNS NVARCHAR(50)
AS
BEGIN
    -- Declare the return variable here
    DECLARE @nameList NVARCHAR(50)
 
    -- Add the T-SQL statements to compute the return value here
    SELECT @nameList =(select Name+','   FROM dbo.OT_User
WHERE ObjectID IN (SELECT temp.value('.', 'nvarchar(50)') AS id
FROM @temp.nodes('/ArrayOfString/string') o(temp)) for xml path('')
 )
 
    -- Return the result of the function
    RETURN  SUBSTRING(@nameList, 1, len(@nameList)-1) 
 
END
发问题贴的时候,可以@一下我,我就能更快的知道了
Ricardo
18

帖子

120

跟帖

1326

积分

黄金榴莲
黄金榴莲
  • 社区居民
4楼#
发布于:2017-04-16 16:57
岩竹玉雨:哦,多人字段存的是xml,我的处理方法是,自己写了个sql函数。

ALTER FUNCTION .
(
    @temp XML
)
RETURNS NVARCHAR(50)
AS
BEGIN
    -- Decla...
回到原帖
谢谢大牛
你若盛开,蝴蝶自来。
游客

返回顶部