Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

RTRIM() Fungsi di Oracle

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:

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Contoh Oracle FOR LOOP REVERSE

  2. SET NULL:Tentukan String untuk Dikembalikan Kapanpun Nilai Null Terjadi di SQLcl / SQL*Plus

  3. Penyetelan Kinerja PL/SQL untuk Kueri Wildcard LIKE '%...%'

  4. Bagaimana saya bisa mempercepat row_number di Oracle?

  5. Permintaan untuk memeriksa ukuran tabel di database Oracle