sql >> Databáze >  >> RDS >> Oracle

Oracle SQL - vytvořte řetězec zřetězením řádků, ale nepřesahuje počet X znaků

Zkusil jsem následující dotaz a dosáhl požadovaného výsledku.

SELECT
    LISTAGG(X, ',') WITHIN GROUP(
        ORDER BY
            X
    ) as result
FROM
    (
        SELECT
            X,
            SUM(LENGTH(X)) OVER(
            ORDER BY
                X
            ) LENGTH_X,
            COUNT(1) OVER(
            ORDER BY
                X
            ) - 1 AS COMMAS
        FROM
            (
                SELECT
                    LEVEL   X
                FROM
                    DUAL
                CONNECT BY
                    LEVEL <= 20
            )
    )
GROUP BY
    CEIL((LENGTH_X + COMMAS) / 15);

Výstup:

db<>ukázka houslí

Na zdraví!!




  1. Chyba syntaxe poblíž 'of' v podmínce fulltextového vyhledávání 'control of'

  2. Hibernate Named Query - připojte se ke 3 tabulkám

  3. Bezpečná databázová připojení Java

  4. předání LIMIT jako parametrů MySQL sproc