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

Batasi karakter yang dikembalikan dalam kueri sql Oracle

Hanya dengan sedikit usaha. Sesuatu seperti ini:

select listagg((case when running_len < 4000 then oi.impression end), ',') within group (order by oi.line)
from (select oi.*,
             sum(length(oi.impression) + 1) over (partition by ?? order by oi.line) as running_len
      from order_impression oi
     ) oi
group by ??;

Ini menghitung panjang berjalan dan hanya nilai agregat yang tidak melebihi panjang. ?? adalah apa pun yang Anda gunakan untuk agregasi. Ini mengasumsikan bahwa line unik, jadi order by stabil.

Ini tidak akan menyertakan impression yang melebihi panjangnya -- dan tidak ada setelah itu. Itu tidak memotong kesan. Logika itu mungkin, tetapi itu memperumit kueri.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Urutan entitas tertentu

  2. Contoh Fungsi Oracle Untuk Mendapatkan Jumlah Hari Antara Dua Tanggal

  3. cara menyimpan nilai BigInteger di database oracle

  4. Berapa panjang pernyataan maksimum di Oracle?

  5. Terhubung ke database Oracle menggunakan ROracle dengan tnsnames.ora di Mac OS 10.10