Thursday, August 16, 2012

Penggunaan Coalesce di SQL Server

Coalesce ternyata bisa dipakai untuk pivot table.
Untuk menampilkan sebuah field yang terdiri dari banyak row dan menjadi 1 row ternyata bisa memakai coalesce.
Hal ini sebagai cara lain dari langkah untuk menampilkan multiple row kedalam single row seperti tulisan sebelumnya.

contoh script:
jika ada data, misal tabel mkaryawan (ID, Nama)
ID  NAMA
1    A
2    B
3    C

maka biar bisa tampil menjadi A, B, C
bikin script dibawah, dan bisa dijadiin function

    declare @nama varchar(2000)

    set @nama =''
    select @nama =COALESCE(@nama,'') +nama+', '
    from  mkaryawan

    if (len(@nama )>0)
    set @nama =left(@nama , len(@nama )-1)

Kemudian coba lihat hasilnya

select @nama

Selain itu juga berfungsi untuk macthing row dari 1 atau lebih table data.

DECLARE @t1 TABLE (memberid INT,initialjob VARCHAR(50))
DECLARE @t2 TABLE (memberid INT,intermediatejob VARCHAR(50))
DECLARE @t3 TABLE (memberid INT,lastjob VARCHAR(50))

INSERT INTO @t1
SELECT 123,'GS' UNION
SELECT 124,'PDR'

INSERT INTO @t2
SELECT 123,'AAP' UNION
SELECT 125,'AV'

INSERT INTO @t3
SELECT 123,'TS' UNION
SELECT 126,'CS'

set statistics io on
set statistics time on

select coalesce(t1.memberid,t2.memberid,t3.memberid) 'memberid', initialjob, intermediatejob, lastjob
from @t1 t1
full outer join @t2 t2 on t1.memberid=t2.memberid
full outer join @t3 t3 on t3.memberid=t2.memberid

Lihat masternya disini

No comments:

Post a Comment