Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Giới hạn các ký tự được trả về trong truy vấn sql oracle

Chỉ với một chút nỗ lực. Một cái gì đó như thế này:

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 ??;

Điều này tính toán độ dài đang chạy và chỉ tổng hợp các giá trị không vượt quá độ dài. ?? là bất cứ điều gì bạn đang sử dụng để tổng hợp. Điều này giả định rằng line là duy nhất, vì vậy order by ổn định.

Điều này sẽ không bao gồm impression vượt quá độ dài - và không có gì sau đó. Nó không làm mất đi ấn tượng. Logic đó là có thể, nhưng nó làm phức tạp truy vấn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách lấy bảng làm tham số out trong oracle

  2. Gọi thủ tục Oracle với Loại bản ghi PL / SQL từ Spring JDBC

  3. Oracle 'CHÈN TẤT CẢ' bỏ qua các bản sao

  4. Tôi có chương trình mà tôi muốn so sánh các ngày mang theo và mang lại dữ liệu mong muốn

  5. Lệnh odbc thích hợp để gọi thủ tục được lưu trữ trong Oracle với các tham số từ .Net là gì?