Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Cara mendapatkan nilai kolom dalam satu nilai yang dipisahkan koma

Anda menandai pertanyaan dengan sql-server dan plsql jadi saya akan memberikan jawaban untuk SQL Server dan Oracle.

Di SQL Server Anda dapat menggunakan FOR XML PATH untuk menggabungkan beberapa baris menjadi satu:

select distinct t.[user],
  STUFF((SELECT distinct ', ' + t1.department
         from yourtable t1
         where t.[user] = t1.[user]
            FOR XML PATH(''), TYPE
            ).value('.', 'NVARCHAR(MAX)') 
        ,1,2,'') department
from yourtable t;

Lihat SQL Fiddle dengan Demo .

Di Oracle 11g+ Anda dapat menggunakan LISTAGG :

select "User",
  listagg(department, ',') within group (order by "User") as departments
from yourtable
group by "User"

Lihat SQL Fiddle dengan Demo

Sebelum Oracle 11g, Anda dapat menggunakan wm_concat fungsi:

select "User",
  wm_concat(department) departments
from yourtable
group by "User"


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pemotongan SQL Server dan batasan 8192

  2. pemulihan basis data gagal dengan pemindahan

  3. Kembalikan Informasi Kolom untuk Prosedur Tersimpan di SQL Server:sp_sproc_columns

  4. SQL Query lambat dalam aplikasi .NET tetapi seketika di SQL Server Management Studio

  5. Cara Menonaktifkan Change Data Capture (CDC) Pada Database di SQL Server - Tutorial SQL Server