sql >> Databáze >  >> RDS >> Sqlserver

Zřetězení řetězců pomocí for xml cesty

Váš poddotaz nemůže vrátit dvě hodnoty. Pokud chcete pouze zřetězit řetězce, nepotřebujete xml datový typ vůbec. Můžete provést stuff() a poddotaz v jediném příkazu:

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. java Hibernujte zbytečné dotazy na oddělené objekty

  2. Najděte název hostitele v postgresql

  3. Laravel Migration přidat pole poté, co jsou data v tabulce?

  4. Jaké jsou způsoby vkládání a načítání dat BLOB z databáze Oracle pomocí SQL?