SQLite
 sql >> база данни >  >> RDS >> SQLite

Как Group_Concat() работи в SQLite

SQLite има group_concat() функция, която ви позволява да конкатенирате множество резултати, върнати за колона, в един.

Това понякога се нарича „агрегация на низове“.

Например, когато отправяте заявка към база данни, вместо стойността на всяка колона да бъде изведена в нов ред, можете да използвате group_concat() за да ги изведе като списък, разделен със запетая.

Синтаксис

Можете да използвате тази функция по един от следните начини:

group_concat(X)
group_concat(X,Y)

С други думи, group_concat() функцията може да се използва с един или два аргумента.

Вторият аргумент указва символ, който да се използва като разделител. Ако не посочите това, тогава запетая (, ) ще се използва като разделител.

Пример с един аргумент

Ето пример за извикване на group_concat() с един аргумент.

SELECT group_concat(FirstName)
FROM Employee;

Резултат:

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

Ако не използвах group_concat() за да свържете тази колона, резултатите биха изглеждали така:

SELECT FirstName
FROM Employee;

Резултат:

Andrew    
Nancy     
Jane      
Margaret  
Steve     
Michael   
Robert    
Laura    

Използвайте персонализиран разделител

Както споменахме, имате възможност да укажете кой знак да използвате като разделител.

Ето пример за определяне на символа на тръбата (| ) като разделител.

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

Резултат:

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

Ето още един, който използва запетая, но също така добавя интервал отдясно на запетаята.

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

Резултат:

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

Групирайте резултатите

Можете да върнете няколко колони и да използвате GROUP BY клауза, за да ги групирате по подходящ начин.

Ето един пример.

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

Резултат:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как работи SQLite Sum().

  2. SQLite JSON_SET()

  3. NullPointerException на getReadableDatabase()

  4. Кога се изпълнява SQLiteOpenHelper onCreate() / onUpgrade()?

  5. Как да генерирате произволно число в рамките на определен диапазон в SQLite