Di Oracle, RTRIM()
fungsi memungkinkan Anda untuk memotong bagian kanan string. Secara default, ini memangkas spasi, tetapi Anda dapat secara opsional menentukan karakter atau karakter yang berbeda untuk dipangkas.
Sintaks
Sintaksnya seperti ini:
RTRIM(char [, set ])
Dimana char
dan set
dapat berupa salah satu tipe data CHAR
, VARCHAR2
, NCHAR
, NVARCHAR2
, CLOB
, atau NCLOB
.
RTRIM
menghapus dari ujung kanan char
semua karakter yang ada di set
. Jika Anda tidak menentukan set
, maka defaultnya adalah satu kosong.
Contoh
Ini contohnya:
SELECT RTRIM('Cat ')
FROM DUAL;
Hasil:
RTRIM('CAT') _______________ Cat
Di sini, saya tidak menentukan karakter mana yang akan dipangkas, sehingga setiap kosong dipangkas dari bagian kanan string.
Tidak mudah untuk melihat efek dari contoh di atas.
Berikut contoh lain, dengan string yang digabungkan dengan string lain, sambil membandingkan output dengan string asli (belum dipotong):
SELECT 'Cat ' || 'Food'
FROM DUAL
UNION ALL
SELECT RTRIM('Cat ') || 'Food'
FROM DUAL;
Hasil:
'CAT'||'FOOD' ________________ Cat Food CatFood
Tentukan Karakter
Dalam contoh ini saya menentukan karakter untuk dipangkas. Ini membuatnya lebih mudah untuk melihat efeknya:
SELECT RTRIM('...Cat...', '.')
FROM DUAL;
Hasil:
RTRIM('...CAT...','.') _________________________ ...Cat
Jadi kita bisa melihat bahwa karakter dipangkas dari sisi kanan tetapi tidak dari sisi kiri. Untuk memangkas sisi kiri, gunakan LTRIM()
atau TRIM()
.
Perhatikan bahwa RTRIM()
hanya memangkas karakter/s di set up sampai ada karakter yang tidak di set. Ini contoh yang saya maksud:
SELECT RTRIM('Cat...B...', '.')
FROM DUAL;
Hasil:
RTRIM('CAT...B...','.') __________________________ Cat...B
Namun, jika kami menyertakan B
di set, maka kita mendapatkan hasil yang berbeda:
SELECT RTRIM('Cat...B...', '.B')
FROM DUAL;
Hasil:
RTRIM('CAT...B...','.B') ___________________________ Cat
Contoh Basis Data
Berikut ini contoh pemangkasan bagian kanan nilai dalam kolom database:
SELECT
country_name,
RTRIM(country_name, 'an') AS Trimmed
FROM countries
FETCH FIRST 5 ROWS ONLY;
Hasil:
COUNTRY_NAME TRIMMED _______________ ___________ Argentina Argenti Australia Australi Belgium Belgium Brazil Brazil Canada Canad
Nilai Null
Jika ada argumen null
hasilnya null
:
SET NULL 'null';
SELECT
RTRIM(null, 3),
RTRIM('Cat ', null),
RTRIM(null, null)
FROM DUAL;
Hasil:
RTRIM(NULL,3) RTRIM('CAT',NULL) RTRIM(NULL,NULL) ________________ ____________________ ___________________ 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 sebagai argumen kedua menghasilkan null
:
SET NULL 'null';
SELECT RTRIM('Cat ', '')
FROM DUAL;
Hasil:
RTRIM('CAT','') __________________ null
Tetapi menambahkan satu spasi ke string kosong akan mengubahnya, dan memangkas spasi kosong apa pun dari kanan string:
SELECT RTRIM('Cat ', ' ')
FROM DUAL;
Hasil:
RTRIM('CAT','') __________________ Cat
Jumlah Argumen Salah
Memanggil RTRIM()
tanpa memberikan argumen apa pun mengembalikan kesalahan:
SELECT RTRIM()
FROM DUAL;
Hasil:
Error starting at line : 1 in command - SELECT RTRIM() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00938: not enough arguments for function 00938. 00000 - "not enough arguments for function" *Cause: *Action:
Dan meneruskan jumlah argumen yang salah menghasilkan kesalahan:
SELECT RTRIM('Cat', 1, '>')
FROM DUAL;
Hasil:
Error starting at line : 1 in command - SELECT RTRIM('Cat', 1, '>') FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00939: too many arguments for function 00939. 00000 - "too many arguments for function" *Cause: *Action: