首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关于STUFF和XML路径的问题-研究了很多,但没有成功

关于STUFF和XML路径的问题-研究了很多,但没有成功
EN

Stack Overflow用户
提问于 2020-06-29 21:25:23
回答 1查看 35关注 0票数 0

我在这里查找了许多关于XML路径和内容的问题和答案,但我无法使其适用于我的查询。我知道这是用户错误,但我不能弄清楚。感谢您的帮助。

下面是我的示例查询:

代码语言:javascript
复制
SELECT DISTINCT 
     map.Name
    ,loc.MainAddress
    ,loc.MainCity
    ,loc.MainStateProvince_MisStateProvID
    ,loc.MainZipPostal
FROM                meditech_livefdb.dbo.MisLoc_Main             loc
    LEFT OUTER JOIN meditech_livefdb.dbo.MisNomenclatureMap_Main map ON (loc.SourceID = map.SourceID AND loc.NomenclatureMap = map.MisNomenclatureMapID)
WHERE loc.MainAddress = '123 Main Street'

map.Name列出了每个地址位置提供的服务。大多数地点都提供多种服务。我想要一个不同的地址位置列表与一个组合的字段显示在该位置提供的所有服务。我试过下面的方法,但根本不起作用。

代码语言:javascript
复制
SELECT DISTINCT 
     loc.MainAddress
    ,loc.MainCity
    ,loc.MainStateProvince_MisStateProvID
    ,loc.MainZipPostal
    ,STUFF((SELECT ', ' + map.Name FOR XML PATH('')), 1, 1, '') AS Services
FROM                meditech_livefdb.dbo.MisLoc_Main             loc
    LEFT OUTER JOIN meditech_livefdb.dbo.MisNomenclatureMap_Main map ON (loc.SourceID = map.SourceID AND loc.NomenclatureMap = map.MisNomenclatureMapID)
WHERE loc.MainAddress = '123 Main Street'

这与第一个查询给出的结果相同。看到我做错什么了吗?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-06-29 22:25:24

尝试在您的stuff子句中单独引用映射表(将map.ID替换为您唯一的id字段的名称):

代码语言:javascript
复制
STUFF((SELECT ',' + map2.Name
        FROM meditech_livefdb.dbo.MisNomenclatureMap_Main map2
        WHERE map.ID = map2.ID FOR XML PATH('')
    ), 1, 1, '') AS Services
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62639152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档