Masalah:
Anda ingin menghapus jeda baris di kolom.
Contoh:
Basis data kami memiliki tabel bernama address_book
dengan data di kolom city_name
dan company_address
. Anda ingin mengganti setiap tab dan pemisah baris di company_address
kolom dengan tanda ' ' (spasi) agar lebih menarik secara visual.
nama_kota | alamat_perusahaan |
---|---|
Tokyo | Jalan Oreo ke-15, Tokyo 9870-11 |
Warsawa | 18 Jalan Marszalkowska, Warsawa 03-654 |
Akra | 123 Banana Junction, Lingkaran-Accra, 00244 |
Berlin | Jalan Mangga ke-25, Suaka Turun, DE-1234 |
Solusi:
Berikut pertanyaannya:
SELECT city_name, REPLACE(company_address, CHR(10) || CHR(13) || CHR(9), ‘ ‘) FROM address_book;
Berikut hasil querynya:
nama_kota | alamat_perusahaan |
---|---|
Tokyo | Jalan Oreo ke-15, Tokyo 9870-11 |
Warsawa | 18 Marszalkowska Ave, Warsawa 03-654 |
Akra | 123 Banana Junction, Circle-Accra, 00244 |
Berlin | 25th Mango Avenue, Asylum Down, DE-1234 |
Diskusi:
REPLACE()
fungsi umumnya digunakan untuk mengganti semua kemunculan string tertentu dalam sebuah string dengan string lain. Anda mungkin bertanya mengapa kami menggunakan CHR(10)
dan CHR(13)
dalam contoh di atas. CHR()
fungsi digunakan untuk menyisipkan karakter kontrol ke dalam string. CHR(10)
digunakan untuk menyisipkan jeda baris, CHR(9)
adalah untuk tab, dan CHR(13)
adalah untuk pengembalian kereta.
Pada contoh di atas, kami ingin menghapus semua kemunculan jeda baris, tab, dan carriage return, jadi kami menggunakan CHR(10)
, CHR(9)
, dan CHR(13)
. Mereka dapat digabungkan menggunakan tanda gabungan di Oracle (||
) untuk menghapus semua kemunculannya di kolom. Contoh sintaksnya adalah REPLACE(string, CHR(10) || (CHR(13) || CHR(09), ‘ ‘ )
.