untuk SQL server ini caranya, .
script SQLnya kayak gini
pertama kita buat tabel1
Code:
create table table1 (kolom1 int, kolom2 varchar(50)) Go
trus kita isi datanya
Code:
insert table1 select 1,'satu' union all select 1,'dua' union all select 1,'tiga' union all select 2,'empat' union all select 2,'lima' union all select 3,'enam' union all select 3,'tujuh' union all select 3,'delapan' go
isi tabel1 jadi seperti ini
Kolom1 | Kolom2 |
---|---|
1 | satu |
1 | dua |
1 | tiga |
2 | empat |
2 | lima |
3 | enam |
3 | tujuh |
3 | delapam |
nah kita buat fungsi buat groupingnya
create function dbo.Group_Concat(@kolom1 int) returns varchar(5000) --outputnya yang akan jadi kolom2 as begin declare @out varchar(5000) --mengabungkan isi kolom2 berdasarkan kriteria kolom1 select @out = coalesce(@out + ',' + kolom2, kolom2) from table1 where kolom1 = @kolom1 return @out end
fungsi diatas akan mengrouping nilai kolom2 berdasarkan input yang dimasukin(kolom1)
kalo dipanggil fungsinya... misalnya
Call Group_Concat(1)
maka returnnya = "satu,dua,tiga"
nah sekarang kita buat query untuk nampilin bukan hanya satu input tapi semua nilai dari kolom1
yang itu dengan mengisi parameter untuk fungsi Group_concat dari sub query
querynya :
Code:
select kolom1, dbo.Group_Concat(kolom1) kolom2 from (select kolom1 from table1 group by kolom1 ) tempTable
dan outputnya akan menjadi
Kolom1 | Kolom2 |
---|---|
1 | satu, dua, tiga |
2 | empat, lima |
3 | enam, tujuh, delapan |
Gw nyobainnya pake Ms SQL server 2005.... seharusnya bekerja untuk semua versi SQl server
0 comments:
Posting Komentar