Saat saya melakukan perawatan tabel database yaitu, tabel PPN dari program aplikasi yang merupakan data join antara faktur komersial dengan faktur pajak. Pada saat itu data tersebut pada periode tertentu terhapus dengan tidak sengaja sehingga tedapat kesulitan jika akan melakukan pendataan ulang dari join antara faktu komersial dan faktur pajak.

Untungnya dalam program e-tax terdapat fasilitas untuk melakukan export data ke CSV dan bisa di transfer ke database SQL Serve yang digunakan program aplikasi. Akan tetapi saya mendapatkan kesulitan, salah satunya adalah melakukan join NPWP dari pelanggan antara tabel data master program aplikasi dengan data NPWP yang merupakan hasil import e-tax. Kesulitannya adalah jika dalam tabel master pelanggan untuk fields NPWP menggunakan format, misalkan 07.790.293.0-505.000 (dengan format), tetapi data e-tax adalah 077902930505000 (tanpa format).

Fungsi REPLACE

Setelah saya cari ternyata sangat mudah untuk melakukannya, yaitu dengan fungsi Replace, sebuah fungsi dalam SQL Server yang secara umum berfungsi mengganti (replace) beberapa karakter pada ekspresi string dengan patren karakter tertentu yang kita kehendaki.

Syntax atau penulisan fungsi REPLACE sangat sederhana, yaitu seperti pola penulisan dibawah ini:

REPLACE ( string_expression , string_pattern , string_replacement )

string_expression adalah ekspresi atau data string, bisa berupa konstanta, variable atau fields string yang akan diproses. string_pattern adalah pola dari karakter tertentu (1 atau lebih karakter) yang akan diganti/replace. string_replacement adalah pola dari karakter pengganti (0 atau lebih karakter) sebagai pengganti.

Sebagai contoh perhatikan 2 query berikut ini:

SELECT Replace('bala-bala', 'ba', 'paha')

dengan quey ini maka akan dihasilkan recordset data berikut ini:

------------------------------------------------
pahala-pahala
SELECT KodeCustomer, NamaCustomer, Replace(KodeCustomer, 'A3', 'XX') AS KodePengganti FROM FileCustomer

KodeCustomer    NamaCustomer                                       KodePengganti
--------------- -------------------------------------------------- ---------------------------------------------------- 
A3179           DENTA 29 (SLTG)                                    XX179
A3180           SATYA FARMA (YOG)                                  XX180
A3181           RESTU MEDIKA (SRGN)                                XX181
A3182           WARAS (SKH)                                        XX182

Menghilangkan Format Data String

Jika mempunyai permasalahan di atas tentang bagaimana bisa melakukan join dengan kunci data NPWP 07.790.293.0-505.000 (dengan format) dengan data NPWP 077902930505000?

Dengan menggunakan fungsi REPLACE ternyata sangat mudah dengan menggunakan cara seperti contoh berikut ini:

Untuk merubah NPWP 07.790.293.0-505.000 menjadi non fomat menjadi 077902930505000, maka bisa digunakan cara dengan menggunakan fungsi:

Replace(Replace('07.790.293.0-505.000','.',''),'-','')

Penulisan fungsi tersebut akan memproses data NPWP 07.790.293.0-505.000 mengganti tanda ‘.’ (titik) dengan karakter ” (kosong), diproses selanjutnya mengganti tanda ‘-‘ (strip) dengan karakter ” (kosong), sehhingga akan akan dihasilkan data NPWP 077902930505000

Dengan penjelasan contoh diatas, maka dapat melakukan join dengan kunci field yang berbeda format dengan query sebagai berikut:

SELECT * FOM FileCustomer C
INNER JOIN FaktuPajak P ON Replace(Replace(C.NPWP,'.',''),'-','') = P.NPWP

Ini adalah salah pengalaman saya sebagai programmer, yang walaupun sangat sederhana tetapi pada suatu saat akan sangat dibutuhkan. Semoga artikel ini bermanfaat bagi anda.