Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak zwrócić 1 jednowierszowe dane z 2 różnych tabel z dynamiczną zawartością w sql

Jeśli zajrzysz tutaj:http://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/

można to zrobić na kilka sposobów.

Dostosowując się do Twojej sytuacji, oto jeden, który wygląda na prosty:

    select batch_no, LEFT(booksauthors, len(booksauthors)-1) as Authors from 
(SELECT ba.Batch_no,

      ( SELECT cast(ba1.Author_no as varchar(10)) + ','

           FROM Book_Authors ba1

          WHERE ba1.Batch_no = ba.Batch_no

          ORDER BY Author_no

            FOR XML PATH('') ) AS BooksAuthors

      FROM Book_Authors ba

      GROUP BY Batch_no )A;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. EntityFramework ConnectionString utf8

  2. Przenieś dane SQL z jednej tabeli do drugiej

  3. Użyj sortowania w CONCAT

  4. Wyzwalacze programu SQL Server:wyzwalacze DML

  5. SQL Server używać EXEC/sp_executesql lub po prostu zwykły sql w procedurze składowanej?