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

Mensimulasikan fungsi group_concat MySQL di Microsoft SQL Server 2005?

Tidak ada cara mudah NYATA untuk melakukan ini. Banyak ide di luar sana.

Yang terbaik yang saya temukan:

SELECT table_name, LEFT(column_names , LEN(column_names )-1) AS column_names
FROM information_schema.columns AS extern
CROSS APPLY
(
    SELECT column_name + ','
    FROM information_schema.columns AS intern
    WHERE extern.table_name = intern.table_name
    FOR XML PATH('')
) pre_trimmed (column_names)
GROUP BY table_name, column_names;

Atau versi yang berfungsi dengan benar jika data mungkin berisi karakter seperti <

WITH extern
     AS (SELECT DISTINCT table_name
         FROM   INFORMATION_SCHEMA.COLUMNS)
SELECT table_name,
       LEFT(y.column_names, LEN(y.column_names) - 1) AS column_names
FROM   extern
       CROSS APPLY (SELECT column_name + ','
                    FROM   INFORMATION_SCHEMA.COLUMNS AS intern
                    WHERE  extern.table_name = intern.table_name
                    FOR XML PATH(''), TYPE) x (column_names)
       CROSS APPLY (SELECT x.column_names.value('.', 'NVARCHAR(MAX)')) y(column_names) 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa praktik terbaik untuk kunci utama dalam tabel?

  2. 3 Cara Mengekstrak Tahun dari Tanggal di SQL Server (T-SQL)

  3. Cara membuat skrip untuk membuat Ulang Batasan Kunci Asing di Database SQL Server - Tutorial SQL Server / TSQL Bagian 73

  4. SQL Server Tunggu Acara -2

  5. Apa keuntungan dari VistaDB