Pertanyaan ini memiliki jawaban khusus basis data.
Jika menggunakan SQL Server:
SELECT column1
, RIGHT(column2,CHARINDEX('-',REVERSE(column2))-1) as extracted
, column3
FROM myTable
Anda dapat menambahkan CASE
pernyataan atau gunakan NULLIF()
jika tanda hubung tidak selalu ada:
SELECT column1
, CASE WHEN column2 LIKE '%-%' THEN RIGHT(column2,CHARINDEX('-',REVERSE(column2))-1)
END as extracted
, column3
FROM myTable
Atau:
SELECT column1
, RIGHT(column2,NULLIF(CHARINDEX('-',REVERSE(column2)),0)-1) as extracted
, column3
FROM myTable
Jika menggunakan MySQL cukup ubah CHARINDEX()
ke LOCATE()
. Saya percaya Oracle itu INSTR()
dan dua parameter pertama dialihkan, pertama adalah string yang Anda cari, lalu string yang Anda cari.