2017-10-03 4 views
1

두 쿼리의 값을 결합하여 쉼표로 구분하여 표시해야하며 별개 기호를 사용해야합니다. 조인/합집합을 모두 사용하려고했거나 각 값에서 고유 한 값을 사용하려고했지만 여전히 값이 공통적 인 경우 중복 된 값을 얻습니다. 누군가이 값으로 도움을받을 수 있습니다. 다음은 내 쿼리 및 출력은중복 결과를 SQL에서 제거

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, '') + ',' , '')) 

첫 번째 쿼리의 출력은 두 번째 질의의 0,991,345

출력이 0033874,0991345,8877425

  • 예상 출력 0033874,0991345,8877425
  • 임 현재 출력은 099134500338740991345,8877425

답변

1

여기서는 0을 사용하는 편도입니다 1,233,및 파생 테이블 사용 for xml 질의 내부 외주 select 이동 :

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

결과 : 0033874,0991345,8877425