sql >> Databáze >  >> RDS >> SQLite

Jak Group_Concat() funguje v SQLite

SQLite má group_concat() funkce, která umožňuje zřetězit více výsledků vrácených pro sloupec do jednoho.

To se někdy nazývá „agregace řetězců“.

Například při dotazu na databázi můžete místo toho, aby se hodnota každého sloupce vypisovala na nový řádek, použít group_concat() aby byly výstupem jako seznam oddělený čárkami.

Syntaxe

Tuto funkci můžete použít jedním z následujících způsobů:

group_concat(X)
group_concat(X,Y)

Jinými slovy, group_concat() funkci lze použít s jedním nebo dvěma argumenty.

Druhý argument určuje znak, který se má použít jako oddělovač. Pokud toto neuvedete, pak čárka (, ) bude použit jako oddělovač.

Příklad s jedním argumentem

Zde je příklad volání group_concat() s jedním argumentem.

SELECT group_concat(FirstName)
FROM Employee;

Výsledek:

Andrew,Nancy,Jane,Margaret,Steve,Michael,Robert,Laura

Pokud jsem nepoužil group_concat() pro zřetězení tohoto sloupce by výsledky vypadaly takto:

SELECT FirstName
FROM Employee;

Výsledek:

Andrew    
Nancy     
Jane      
Margaret  
Steve     
Michael   
Robert    
Laura    

Použít vlastní oddělovač

Jak již bylo zmíněno, máte možnost určit, který znak se má použít jako oddělovač.

Zde je příklad určení symbolu potrubí (| ) jako oddělovač.

SELECT group_concat(FirstName, '|')
FROM Employee;

Výsledek:

Andrew|Nancy|Jane|Margaret|Steve|Michael|Robert|Laura

Zde je další, který používá čárku, ale také přidává mezeru napravo od čárky.

SELECT group_concat(FirstName, ', ')
FROM Employee;

Výsledek:

Andrew, Nancy, Jane, Margaret, Steve, Michael, Robert, Laura

Seskupit výsledky

Můžete vrátit více sloupců a použít GROUP BY klauzule k jejich vhodnému seskupení.

Zde je příklad.

SELECT ArtistId, group_concat(AlbumName) 
FROM Albums 
GROUP BY ArtistId LIMIT 10;

Výsledek:

ArtistId  group_concat(AlbumName)                                                   
--------  --------------------------------------------------------------------------
1         Powerslave,Somewhere in Time,Piece of Mind,Killers,No Prayer for the Dying
2         Powerage                                                                  
3         All Night Wrong,The Sixteen Men of Tain                                   
4         Big Swing Face                                                            
5         Ziltoid the Omniscient,Casualties of Cool,Epicloud                        
6         Singing Down the Lane                                                     
7         Long Lost Suitcase,Praise and Blame,Along Came Jones                      
9         No Sound Without Silence                                                  
12        Blue Night,Eternity,Scandinavia                                           

  1. Jak formátovat čísla jako římské číslice v Oracle

  2. PostgreSQL dotaz ILIKE s SQLAlchemy

  3. Žádné mapování dialektu pro typ JDBC:1111

  4. Jak se vyhnout chybě dělení nulou v SQL?