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...

2 comments:

fendybumblebee@gmail.com said...

di postgres
saya mau memisahkan data sbb, dibedakan tanda + (plus) kadang ada tanda plus kadang tida
""
"10%"
"5%"
"5000"
"10000"
"10000+2%"

fendybumblebee@gmail.com said...

ketika saya jalankan ini
SELECT discexp, substring(discexp from 1 for position('+' in discexp) - 1) as discexp1 from saled;

maka errore
ERROR: negative substring length not allowed

********** Error **********

ERROR: negative substring length not allowed
SQL state: 22011

mohon bantuan

Post a Comment