首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅在使用时显示唯一值

仅在使用时显示唯一值
EN

Stack Overflow用户
提问于 2018-04-18 09:59:10
回答 1查看 597关注 0票数 1

我有以下查询:

代码语言:javascript
复制
with GTS_cte AS
    (SELECT distinct [BusinessTermID], GTS_T = 
    STUFF                   ((SELECT ', ' + dbo.TblField.GTS_table
                             FROM      dbo.TblField
                             WHERE   [BusinessTermID] = Y.[BusinessTermID] AND dbo.TblField.GTS_table <> '' FOR XML PATH('')), 1, 2, '')
     FROM      dbo.Tblfield AS Y
     GROUP BY [BusinessTermID])

    ,
  syn_cte as (
SELECT [BusinessTermID], syns = STUFF
                      ((SELECT ', ' + dbo.TblBusinessSynonym.Synonym
                        FROM      dbo.TblBusinessSynonym
                        WHERE   [BusinessTermID] = x.[BusinessTermID] AND dbo.TblBusinessSynonym.Synonym <> '' FOR XML PATH('')), 1, 2, '')
FROM     dbo.TblBusinessSynonym AS x
GROUP BY [BusinessTermID])


select syn_cte.BusinessTermID, syn_cte.syns, GTS_cte.GTS_T 
from  syn_cte  join 
  GTS_cte on GTS_cte.BusinessTermID = syn_cte.BusinessTermID

它正在正确地连接字段并将它们链接起来,但现在它正在创建重复的字段。我的结果集如下:

是否有一种方法可以在GTS_T中只显示唯一的值?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-18 10:06:49

在您的DISTINCT中使用Sub-Query.

试试这个:

代码语言:javascript
复制
;with GTS_cte AS
    (SELECT [BusinessTermID], GTS_T = 
    STUFF                   ((SELECT DISTINCT ', ' + dbo.TblField.GTS_table
                             FROM      dbo.TblField
                             WHERE   [BusinessTermID] = Y.[BusinessTermID] AND dbo.TblField.GTS_table <> '' FOR XML PATH('')), 1, 2, '')
     FROM      dbo.Tblfield AS Y
     GROUP BY [BusinessTermID])

    ,
  syn_cte as (
SELECT [BusinessTermID], syns = STUFF
                      ((SELECT DISTINCT ', ' + dbo.TblBusinessSynonym.Synonym
                        FROM      dbo.TblBusinessSynonym
                        WHERE   [BusinessTermID] = x.[BusinessTermID] AND dbo.TblBusinessSynonym.Synonym <> '' FOR XML PATH('')), 1, 2, '')
FROM     dbo.TblBusinessSynonym AS x
GROUP BY [BusinessTermID])


select syn_cte.BusinessTermID, syn_cte.syns, GTS_cte.GTS_T 
from  syn_cte  join 
  GTS_cte on GTS_cte.BusinessTermID = syn_cte.BusinessTermID
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49896744

复制
相关文章

相似问题

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