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

Membalikkan String Kata demi Kata menggunakan SQL

versi berbasis XML untuk menghindari mendefinisikan fungsi Anda sendiri; membutuhkan 11g untuk listagg() :

select listagg(word, ' ') within group (order by rn desc) as reversed
from (
  select word, rownum as rn
  from xmltable('for $i in ora:tokenize($STR, " ") return $i'
    passing 'Hello World! I Love StackOverflow' as str
    columns word varchar2(4000) path '.'
  )
);

REVERSED                               
----------------------------------------
StackOverflow Love I World! Hello        

XMLTable() melakukan tokenising, dan memberikan nomor baris:

select rownum as rn, word
from xmltable('for $i in ora:tokenize($STR, " ") return $i'
  passing 'Hello World! I Love StackOverflow' as str
  columns word varchar2(4000) path '.'
);

        RN WORD               
---------- --------------------
         1 Hello                
         2 World!               
         3 I                    
         4 Love                 
         5 StackOverflow        

listagg() lalu rekatkan kembali dalam urutan terbalik.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-00904 pengidentifikasi tidak valid pada alias dekode

  2. daftar yang dipisahkan koma sebagai hasil dari pernyataan pilih di Oracle

  3. Perbandingan tanggal Oracle rusak karena DST

  4. Kebingungan dengan Oracle CONNECT BY

  5. Koneksi hang setelah waktu tidak aktif