La función LISTAGG en DBMS se usa para agregar strings de datos en columnas en una tabla de base de datos.
- Hace que sea muy fácil concatenar strings. Es similar a la concatenación pero usa agrupación.
- La especialidad de esta función es que también permite ordenar los elementos en la lista concatenada.
Sintaxis:
LISTAGG (measure_expr [, 'delimiter']) WITHIN GROUP (order_by_clause) [OVER query_partition_clause] measure_expr : The column or expression to concatenate the values. delimiter : Character in between each measure_expr, which is by default a comma (,) . order_by_clause : Order of the concatenated values.
Tengamos una tabla llamada Gfg que tenga dos columnas que muestren los nombres de los sujetos y el número de sujeto al que pertenece cada sujeto, como se muestra a continuación:
SQL> select * from GfG; SUBNO SUBNAME ---------- ------------------------------ D20 Algorithm D30 DataStructure D30 C D20 C++ D30 Python D30 DBMS D10 LinkedList D20 Matrix D10 String D30 Graph D20 Tree 11 rows selected.
Consulta 1: escriba una consulta SQL utilizando la función LISTAGG para generar los nombres de los sujetos en un solo campo con los valores delimitados por comas.
SQL> SELECT LISTAGG(SubName, ' , ') WITHIN GROUP (ORDER BY SubName) AS SUBJECTS 2 FROM GfG ;
Producción:
SUBJECTS ----------------------------------------------------------------------------------- Algorithm , C , C++ , DBMS , DataStructure , Graph , LinkedList , Matrix , Python , String , Tree
Consulta 2: escriba una consulta SQL para agrupar cada tema y mostrar cada tema en su respectivo departamento separado por comas con la ayuda de la función LISTAGG.
SQL> SELECT SubNo, LISTAGG(SubName, ' , ') WITHIN GROUP (ORDER BY SubName) AS SUBJECTS 2 FROM GfG 3 GROUP BY SubNo;
Producción:
SUBNO SUBJECTS ------ -------------------------------------------------------------------------------- D10 LinkedList , String D20 Algorithm , C++ , Matrix , Tree D30 C , DBMS , DataStructure , Graph , Python
Consulta 3: escriba una consulta SQL para mostrar los temas que pertenecen a cada departamento ordenados por el número de tema (SUBNO) con la ayuda de la función LISTAGG.
SQL> SELECT SubNo, LISTAGG(SubName, ',') WITHIN GROUP (ORDER BY SubName) AS SUBJECTS 2 FROM GfG 3 GROUP BY SubNo 4 ORDER BY SubNo;
Producción:
SUBNO SUBJECTS ----- -------------------------------- D10 LinkedList, String D20 Algorithm, C++, Matrix, Tree D30 C, DBMS, DataStructure, Graph, Python
Este artículo es una contribución de MAZHAR IMAM KHAN. Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA