2017-11-17 18 views
-1

에 전달하는 방법 아래에있는 데이터가 있습니다. 제품 ID와 이름 난 중복 된 이름을 확인하고 자신의 제품 ID의를 검색하고 궁극적으로 DataTable에 (C#을)에있을 것입니다 structure.These 결과 아래와 같이이 아이디의를 추가 할 필요가 문자열 데이터 형식중복 된 이름의 모든 ID를 가져와 테이블

ProductId Name 
"101"  John 
"201"  Marry 
"301"  Marry 
"401"  John 
"501"  John 

입니다.

ProductId    Name 
"101,401,501"   John` 
"201,301"    Marry 

해결 방법을 알려주십시오.

+0

당신이 시도 않았고이 어디 있습니까있는 방법? 서버에서 중복 제거하거나 JavaScript를 사용 하시겠습니까? – mplungjan

+0

질문 할 때 더 많은 노력을 보여주십시오. 가능한 오류를 확인하기 위해 시도한 것을 제공하십시오. – PhilMaGeo

+0

질문을 수정했는지 확인하십시오. –

답변

1

여기 STUFF

create table #MyTable(ProductId int, [Name] varchar(16)) 
insert into #MyTable 
values 
(101,'John'), 
(201,'Marry'), 
(301,'Marry'), 
(401,'John'), 
(501,'John') 

select distinct 
    t.[Name] 
    ,ProductId = STUFF((
         SELECT ',' + cast(t2.ProductId as char(3)) 
         FROM #MyTable t2 
         WHERE t.[Name] = t2.[Name] 
         FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '') 
from 
    #MyTable t 


drop table #MyTable 

ONLINE DEMO

+0

SQL Server와 완벽하게 작동합니다. 그러나 C# DataTable –

+0

으로 작업하는 방법을 알려주십시오 SQL Server 2008 태그를 지정 했으므로 데이터베이스 측에서이 작업을 수행 할 수 있습니다. – scsimon

+0

예 동의합니다. 또한 C# DataTable을 사용하는 방법을 알고 싶습니다. –