13 August 2021

Mengambil Data Array Yang Posisi-nya Acak

 Masih bahas Array,


Misal kita punya data seperti ini :

AA-111;AB-123;AC-456;BH-100;TT-200

BH-111;TT-123;AA-456;AB-100;AC-200

TT-123;PK-456;BH-100;AB-200;AA-123


Nah, kita mau ambil 3 angka di belakang TT, masalah nya adalah, posisi TT yang tidak konsisten, kadang dia ada dibelakang, kadang di tengah, kadang di depan, nah gimana cara nya?

1. Replace / hapus Char TT : 

SELECT REPLACE(KOLOM_1, 'TT', '') REPLACE_TT FROM NAMA_TABLE

2. Kita buat subquery proses nomer 1 :

SELECT CASE
    WHEN KOLOM_1 NOT LIKE '%TT%' THEN ''
    WHEN KOLOM_1 IS NULL THEN ''
    WHEN SUBSTRING(REPLACE_TT, 1, 1) = '-' THEN SUBSTRING(KOLOM_1,4,3)
    ELSE SUBSTRING(REPLACE(REPLACE_TT, SUBSTRING(REPLACE_TT, 0, CHARINDEX(';-',REPLACE_TT,0)),''),3,3)
END NAMA_KOLOM 

FROM(SELECT REPLACE(KOLOM_1, 'TT', '') REPLACE_TT FROM NAMA_TABLE) A


Sekian.

No comments:

Post a Comment