Friday, October 3, 2014

Menghapus/ mengambil karakter tertentu pada string character koma atau titik

Cara nya cukup mudah dan sederhana hanya perlu pakai LEFT, RIGHT, LEN, CHARINDEX

Script untuk mengambil bagian dari string setelah karakter tertentu :
SELECT LEFT(string_expression, CHARINDEX(expression_to_find, string_expression) - 1)

Script untuk mengganti bagian dari string setelah karakter tertentu :

SELECT REPLACE(SUBSTRING(string_expression, CHARINDEX(expression_to_find, string_expression), LEN(string_expression)), string_pattern, string_replacement)

kamu Bingung ?? saya kasih contoh realitanya ya ;)

Misal ada table employee seperti berikut ini :
Kemudian kita ingin memisahkan data setelah koma pada kolom fullname
Berikut Scriptnya :

SELECT   [FullName]
        ,LEFT([FullName], CHARINDEX(',', [FullName]) - 1) AS [Surname]
        ,REPLACE(SUBSTRING([FullName], CHARINDEX(',', [FullName]), LEN([FullName])), ',', '') AS [FirstName]
FROM    Employee

Kemudian kita ingin memisahkan data setelah koma pada kolom fullname
untuk output nya kira-kira akan jadi seperti ini :



Untuk database Postgresql bisa lakukan perintah seperti ini :
select a, substring(a from 1 for position('_' in a) - 1) as part from test;
a          |part
-----------+------
98-004_c136|98-004
98-005_c171|98-005
P124_154   |P124
Simple nya bisa di tulis seperti ini juga :
split_part('abc~@~def~@~ghi', '~@~', 2)

Outputnya :
 
def 
 
2 di ganti jadi 1 hasilnya "abc" 
 
Salam Sukses gan! Indahnya berbagi...

Thursday, October 2, 2014

Menghapus Duplikat data pada postgresql

Berikut Contoh Syntax nya :

DELETE FROM tab 
  WHERE id IN (SELECT id 
                  FROM (SELECT row_number() OVER (PARTITION BY column_with_duplicate_values), id 
                           FROM tab) x 
                 WHERE x.row_number > 1);