Di Oracle, TRIM()
fungsi memungkinkan Anda untuk memotong karakter dari sisi string.
Anda dapat memangkas karakter utama, karakter tambahan, atau keduanya.
Secara default, ini memangkas spasi putih, tetapi Anda dapat secara opsional menentukan karakter atau karakter yang berbeda untuk dipangkas.
Sintaks
Sintaksnya seperti ini:
TRIM([ { { LEADING | TRAILING | BOTH }
[ trim_character ]
| trim_character
}
FROM
]
trim_source
)
Keduanya trim_character
dan trim_source
bisa VARCHAR2
atau tipe data apa pun yang dapat dikonversi secara implisit ke VARCHAR2
.
Contoh
Berikut adalah contoh sederhana untuk ditunjukkan:
SELECT TRIM('.' FROM '...Cat...')
FROM DUAL;
Hasil:
TRIM('.'FROM'...CAT...') ___________________________ Cat
Dalam hal ini, karakter yang ditentukan (.
) telah dihapus dari kedua sisi string.
Itu dihapus dari kedua sisi karena saya tidak menentukan dari sisi mana untuk menghapusnya.
Kita bisa mendapatkan hasil yang sama dengan memasukkan BOTH
kata kunci:
SELECT TRIM(BOTH '.' FROM '...Cat...')
FROM DUAL;
Hasil:
TRIM(BOTH'.'FROM'...CAT...') _______________________________ Cat
Potong Karakter Utama
Ini dia lagi, tetapi dengan hanya karakter utama yang dihapus:
SELECT TRIM(LEADING '.' FROM '...Cat...')
FROM DUAL;
Hasil:
TRIM(LEADING'.'FROM'...CAT...') __________________________________ Cat...
Potong Karakter Trailing
Dan ini dia dengan hanya karakter tambahan yang dihapus:
SELECT TRIM(TRAILING '.' FROM '...Cat...')
FROM DUAL;
Hasil:
TRIM(TRAILING'.'FROM'...CAT...') ___________________________________ ...Cat
Karakter Default
Dalam contoh ini saya tidak menentukan karakter untuk dipangkas, oleh karena itu memangkas ruang kosong:
SELECT TRIM(' Cat ')
FROM DUAL;
Hasil:
TRIM('CAT') ______________ Cat
Tidak mudah untuk melihat efeknya saat memangkas spasi putih dari kedua sisi.
Berikut contoh lain yang memudahkan untuk melihat bahwa spasi putih telah dihapus dari kedua sisi:
SELECT
'My' || ' Fat ' || 'Cat',
'My' || TRIM(' Fat ') || 'Cat'
FROM DUAL;
Hasil:
'MY'||'FAT'||'CAT' 'MY'||TRIM('FAT')||'CAT' _____________________ ___________________________ My Fat Cat MyFatCat
Angka
Karakter string dan trim dapat berupa VARCHAR2
atau tipe data apa pun yang dapat dikonversi secara implisit ke VARCHAR2
, sehingga kita dapat melewati nomor seperti berikut. Namun, nilai yang dikembalikan adalah VARCHAR2
.
SELECT TRIM(LEADING 0 FROM 007)
FROM DUAL;
Hasil:
TRIM(LEADING0FROM007) ________________________ 7
Ini dia dengan nomor berbeda yang dipangkas:
SELECT TRIM(LEADING 1 FROM 117)
FROM DUAL;
Hasil:
TRIM(LEADING1FROM117) ________________________ 7
Nilai Null
Jika karakter string atau trim adalah null
hasilnya null
:
SET NULL 'null';
SELECT
TRIM(null FROM '...Cat...'),
TRIM(BOTH FROM null),
TRIM(null FROM null)
FROM DUAL;
Hasil:
TRIM(NULLFROM'...CAT...') TRIM(BOTHFROMNULL) TRIM(NULLFROMNULL) ____________________________ _____________________ _____________________ null null null
Secara default, SQLcl dan SQL*Plus mengembalikan ruang kosong setiap kali null
terjadi sebagai akibat dari SQL SELECT
penyataan.
Namun, Anda dapat menggunakan SET NULL
untuk menentukan string berbeda yang akan dikembalikan. Di sini saya menetapkan bahwa string null
harus dikembalikan.
Memotong String Kosong
Melewati string kosong saat karakter trim menghasilkan null
:
SET NULL 'null';
SELECT TRIM('' FROM ' Cat')
FROM DUAL;
Hasil:
TRIM(''FROM'CAT') ____________________ null
Tetapi menambahkan satu spasi ke string kosong akan mengubahnya, dan memangkas spasi kosong apa pun dari string:
SET NULL 'null';
SELECT TRIM(' ' FROM ' Cat')
FROM DUAL;
Hasil:
TRIM(''FROM'CAT') ____________________ Cat
Jumlah Argumen Salah
Memanggil TRIM()
tanpa memberikan argumen apa pun mengembalikan kesalahan:
SELECT TRIM()
FROM DUAL;
Hasil:
Error starting at line : 1 in command - SELECT TRIM() FROM DUAL Error at Command Line : 1 Column : 13 Error report - SQL Error: ORA-00936: missing expression 00936. 00000 - "missing expression" *Cause: *Action:
Dan meneruskan jumlah argumen yang salah menghasilkan kesalahan:
SELECT TRIM(' Cat ', 2)
FROM DUAL;
Hasil:
Error starting at line : 1 in command - SELECT TRIM(' Cat ', 2) FROM DUAL Error at Command Line : 1 Column : 20 Error report - SQL Error: ORA-00907: missing right parenthesis 00907. 00000 - "missing right parenthesis" *Cause: *Action:
Lihat juga RTRIM()
dan LTRIM()
untuk fungsi yang lebih bertarget untuk memangkas setiap sisi string. Fungsi ini juga memungkinkan Anda untuk memotong beberapa karakter dari string.