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

TRIM() Fungsi di Oracle

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Permintaan Oracle sederhana:literal tidak cocok dengan string format

  2. Proses peningkatan langkah demi langkah untuk R12.2 Upgrade Bagian -1

  3. Pilih Baris Pertama Setiap Grup di sql

  4. SEC_CASE_SENSTIVE_LOGON dalam 12c

  5. Fungsi yang setara untuk DATEADD() di Oracle