sql >> Database >  >> RDS >> Oracle

Beperk tekens geretourneerd in Oracle SQL-query

Alleen met een beetje moeite. Zoiets als dit:

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

Dit berekent de looplengte en aggregeert alleen waarden die de lengte niet overschrijden. De ?? is wat u gebruikt voor aggregatie. Dit veronderstelt wel dat line is uniek, dus de order by is stabiel.

Dit omvat niet de impression dat de lengte overschrijdt -- en daarna niets meer. Het snijdt de indruk niet weg. Die logica is mogelijk, maar het bemoeilijkt de zoekopdracht.



  1. SQL-query:geordende rijen ophalen uit een tabel

  2. Is mysql_real_escape_string voldoende voor anti-SQL-injectie?

  3. Meerdere rijen invoegen met een functie in PostgreSQL

  4. Hoe krijg ik de grenscoördinaten voor een Amerikaanse postcode?