Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Конкатенация на низове по за xml път

Вашата подзаявка не може да върне две стойности. Ако просто искате да свържете низове, нямате нужда от xml тип данни изобщо. Можете да направите stuff() и подзаявка в един оператор:

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. 7 начина за връщане на всички таблици с първичен ключ в SQL Server

  2. Как да показвате данни от база данни в текстово поле и да ги актуализирате

  3. 4 функции за форматиране на число до 2 десетични знака в SQL Server

  4. Динамична въртяща се таблица в SQL Server

  5. Проблеми с производителността на SQL Server 2012 Enterprise Edition при лицензиране на CAL