Get the App
SLTechnology News&Howtos  ›  Development  › 

How to use LISTAGG () on multiple join tables in Oracle

Shulou Source: shulou.com Published: 2022-06-01 11:34:52 09月23日 Update

This article mainly explains "how to use LISTAGG () on multiple connection tables in Oracle". The content in the article is simple and clear, and it is easy to learn and understand. Please follow the editor's train of thought to study and learn how to use LISTAGG () on multiple connection tables in Oracle.

You may know how to use LISTAGG () on a single table, but you don't know how to use LISTAGG on multiple join tables. This example shows how to use aggregate functions on joined tables in Oracle 12g.

Suppose we have the following two tables.

Users table

ID name 111aaa222bbb333bbb

Record table

ID tag value 111start1111mid2111end3222start1222end2333start1333mid2333start3

If we want to select all the values marked "start" and "end", as shown in the following figure, how to write the sql query?

Expected results:

ID name aggregate value 111aaa1 Magi 3222bbb1Magi 2333bbb1Magne3

Select u.ID, u.Name, listagg (Value,',') within group (order by Tag) as AggValuesfrom User u left outer join Record ron u.ID = r.ID and r.Tag in ('start',' end') group by u.ID, u.Name

A common mistake is the missing field in the last group by clause. Each selection field should also be in the group by clause. In this example, we chose select ID and Name, so we should use ID and Name to group the results.

Thank you for reading, the above is the content of "how to use LISTAGG () on multiple connection tables in Oracle". After the study of this article, I believe you have a deeper understanding of how to use LISTAGG () on multiple connection tables in Oracle, and the specific use needs to be verified in practice. Here is, the editor will push for you more related knowledge points of the article, welcome to follow!

Tags: Multiple learning selection content name clause field result two value function single that is common ideas situations articles more tags users Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno Shulou Technology Microsoft Redmi NVidia MySQL