SQLite
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> SQLite

Cách Group_Concat () hoạt động trong SQLite

SQLite có group_concat() cho phép bạn nối nhiều kết quả trả về cho một cột thành một.

Điều này đôi khi được gọi là "tổng hợp chuỗi".

Ví dụ:khi truy vấn cơ sở dữ liệu, thay vì đặt giá trị của mỗi cột trong một hàng mới, bạn có thể sử dụng group_concat() để chúng xuất ra dưới dạng danh sách được phân tách bằng dấu phẩy.

Cú pháp

Bạn có thể sử dụng chức năng này theo một trong những cách sau:

group_concat(X)
group_concat(X,Y)

Nói cách khác, group_concat() hàm có thể được sử dụng với một hoặc hai đối số.

Đối số thứ hai chỉ định một ký tự để sử dụng làm dấu phân tách. Nếu bạn không chỉ định điều này, thì dấu phẩy (, ) sẽ được sử dụng làm dấu phân tách.

Ví dụ với một đối số

Đây là ví dụ về cách gọi group_concat() với một đối số.

SELECT group_concat(FirstName)
FROM Employee;

Kết quả:

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

Nếu tôi không sử dụng group_concat() để nối cột này, kết quả sẽ như thế này:

SELECT FirstName
FROM Employee;

Kết quả:

Andrew    
Nancy     
Jane      
Margaret  
Steve     
Michael   
Robert    
Laura    

Sử dụng Dấu phân tách tùy chỉnh

Như đã đề cập, bạn có tùy chọn chỉ định ký tự nào sẽ sử dụng làm dấu phân cách.

Dưới đây là một ví dụ về việc chỉ định ký hiệu ống dẫn (| ) làm dấu phân cách.

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

Kết quả:

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

Đây là một phương thức khác sử dụng dấu phẩy, nhưng cũng thêm khoảng trắng vào bên phải dấu phẩy.

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

Kết quả:

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

Nhóm kết quả

Bạn có thể trả về nhiều cột và sử dụng GROUP BY mệnh đề để nhóm chúng một cách thích hợp.

Đây là một ví dụ.

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

Kết quả:

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. Nhóm kết nối cho cơ sở dữ liệu '/data/data/msv_database.db' không thể cấp kết nối. Kết nối:0 hoạt động, 1 không hoạt động, 0 khả dụng

  2. Đọc cơ sở dữ liệu từ thư mục nội dung

  3. Cơ sở dữ liệu sqlite ATTACH trong Android với SQLiteOpenHelper

  4. Làm cách nào để viết SQLite Real vals sang các giá trị BigDecimal của Java?

  5. SQLite Union