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

Łączenie ciągów za pomocą ścieżki xml

Twoje podzapytanie nie może zwrócić dwóch wartości. Jeśli chcesz po prostu łączyć ciągi, nie potrzebujesz xml w ogóle typu danych. Możesz zrobić stuff() i podzapytanie w jednej instrukcji:

declare @Rep1Names nvarchar(max) = (
    stuff((select ', [' + report_name + ']' as name
           from (select distinct report_order, report_name
                 from #report
                ) x
           order by report_order
           for xml path('')
          )
         ), 1, 1, '');

declare @Rep2Names nvarchar(max) = (
    stuff(select ', isnull([' + report_name + '], 0) as [' + report_name + ']' as res
           from (select distinct report_order, report_name
                 from #report
                ) x
           order by report_order
           for xml path('')
          )
   ), 1, 1, '');


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy możemy uruchomić skrypt SQL za pomocą migracji kodu?

  2. Grupuj i rejestruj wartości dla każdego rekordu w SQL

  3. Uzyskaj godziny i minuty (GG:MM) od daty

  4. Unikalny klucz a unikalny indeks w SQL Server 2008

  5. Co to jest we/wy STATYSTYKI w programie SQL Server?