이름 열에 두 개의 열과 중복 레코드가있는 데이터 테이블이 있습니다. 중복 열을 제거하고 싶지만 중복 열의 값은 제거하지 않으려면 ","를 추가해야합니다.
Name Value
Arun x,c
Kumar j,k
Jai a,b
Balu a,c
Kumar j,m
Arun c,x,w
나는 출력을 원한다.
Name Value
Arun x,c,w
Kumar j,k,m
Jai a,b
Balu a,c
이것을 시도해 볼 수 있습니다 (이 작동 방식에 대한 아이디어는 주석에 명시되어 있습니다) :
Dim dt As New DataTable
'source DataTable has 2 columns : Name and Value
dt.Columns.Add("Name", GetType(String))
dt.Columns.Add("Value", GetType(String))
'add 2 rows to source DataTable
dt.Rows.Add("Arun", "x,c")
dt.Rows.Add("Arun", "c,x,w")
'group rows by Name
'for each group join value by comma so "x,c" + "c,x,w" become "x,c,c,x,w"
'then split by comma and call distinct to remove duplicate chars. result: x|c|w
'join them again by comma. result: "x,c,w"
Dim query = (From row In dt
Group row By name = row.Field(Of String)("Name") Into nameGroup = Group
Select New With {
.Name = name,
.Value = String.Join(",", String.Join(",", nameGroup.Select(Function(x) x.Field(Of String)("Value")).ToList()).Split(",").Distinct())
}
).ToList()
Dim dt2 As New DataTable
dt2.Columns.Add("Name", GetType(String))
dt2.Columns.Add("Value", GetType(String))
'add distinct data to result DataTable
For i As Integer = 0 To query.Count
dt2.Rows.Add(query(i).Name, query(i).Value)
Next
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다