从 sql 中的结果中删除重复项

remove duplicate from result in sql

我必须合并来自两个查询的值并以逗号分隔显示,并且需要从中区分出来。我尝试在每个值中全部使用 join/union 或使用不同的值,但如果这些值很常见,我仍然会得到重复项,有人可以帮忙解决这个问题吗?下面是我的查询和输出

SELECT DISTINCT
    (SELECT DISTINCT
         ISNULL((SELECT TOP 1 PV.serialnumber 
                 FROM ConsumerItemsTable PV 
                 WHERE PV.ItemID = 61) + ',' , '')  +
         ISNULL(STUFF((SELECT distinct ',' + itemid   
                       FROM CustomerItems b  
                       WHERE Name = 'WillamRobbe'
                       FOR XML PATH('')), 1, 1, '')  + ',' , ''))

第一个查询的输出是 0991345

第二个查询的输出是0033874,0991345,8877425

这是一种使用 union 并使用派生的 table:

将外部 select 移动到 for xml 查询中的方法
select stuff((
    select ',' + itemid
    from (
        select itemid
        from CustomerItems b  
        where Name = 'WillamRobbe'
        union 
        select top 1 serialnumber
        from ConsumerItemsTable pv 
        where pv.Itemid = 61
      ) s
    for xml path('') 
   ), 1, 1, '')

rextester 演示:http://rextester.com/UXIK17206

returns: 0033874,0991345,8877425