Функция LISTAGG в СУБД используется для объединения строк из данных в столбцах таблицы базы данных.
- Это позволяет легко объединять строки. Это похоже на конкатенацию, но использует группировку.
- Особенность этой функции заключается в том, что она также позволяет упорядочивать элементы в объединенном списке.
Синтаксис:
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.
Давайте представим таблицу с именем Gfg, в которой есть два столбца, в которых указаны имена и номера субъектов, к которым принадлежит каждый объект, как показано ниже:
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.
Запрос 1: Напишите SQL-запрос, используя функцию LISTAGG для вывода имен субъектов в одном поле со значениями, разделенными запятыми.
SQL> SELECT LISTAGG(SubName, ' , ') WITHIN GROUP (ORDER BY SubName) AS SUBJECTS 2 FROM GfG ;
Выход:
SUBJECTS ----------------------------------------------------------------------------------- Algorithm , C , C++ , DBMS , DataStructure , Graph , LinkedList , Matrix , Python , String , Tree
Запрос 2: Напишите SQL-запрос, чтобы сгруппировать каждый предмет и показать каждый предмет в соответствующем отделе через запятую с помощью функции LISTAGG.
SQL> SELECT SubNo, LISTAGG(SubName, ' , ') WITHIN GROUP (ORDER BY SubName) AS SUBJECTS 2 FROM GfG 3 GROUP BY SubNo;
Выход:
SUBNO SUBJECTS ------ -------------------------------------------------------------------------------- D10 LinkedList , String D20 Algorithm , C++ , Matrix , Tree D30 C , DBMS , DataStructure , Graph , Python
Запрос 3: Напишите запрос SQL, чтобы показать субъекты, относящиеся к каждому отделу, упорядоченные по номеру субъекта (SUBNO) с помощью функции LISTAGG.
SQL> SELECT SubNo, LISTAGG(SubName, ',') WITHIN GROUP (ORDER BY SubName) AS SUBJECTS 2 FROM GfG 3 GROUP BY SubNo 4 ORDER BY SubNo;
Выход:
SUBNO SUBJECTS ----- -------------------------------- D10 LinkedList, String D20 Algorithm, C++, Matrix, Tree D30 C, DBMS, DataStructure, Graph, Python
Эта статья предоставлена МАЖАР ИМАМ ХАН. Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.
Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.
Рекомендуемые посты:
- 10 самых высокооплачиваемых рабочих мест, требующих SQL
- Подсчитайте количество особого дня между двумя датами, используя PL / SQL
- MySQLi процедурные функции
- MySQL | Функция CONNECTION_ID ()
- MySQL | Функция CAST ()
- MySQL | Функция SESSION_USER ()
- MySQL | COALESCE () Функция
- MySQL | ЕСЛИ () Функция
- MySQL | Двоичная функция
- MySQL | Функция CONV ()
- MySQL | Функция CONVERT ()
- MySQL | Функция USER ()
- MySQL | VERSION () Функция
- MySQL | Функция NULLIF ()
0.00 (0%) 0 votes