Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle SQL - utwórz ciąg przez łączenie wierszy, ale nie przekracza X znaków

Wypróbowałem następujące zapytanie i osiągnąłem pożądany rezultat.

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

Wyjście:

db<>demonstracja skrzypiec

Pozdrawiam!!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jaki był koszt najdroższego filmu (filmów) w kolekcji?

  2. Uzyskaj rozmiar tablicy w Oracle sql

  3. Czy ODP.NET wymaga instalacji klienta Oracle?

  4. Jak napisać procedury składowane przy użyciu tabel z innego schematu?

  5. Hibernate 5 HQL translator dla Oracle Spatial