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

Проблем при динамично завъртане + sql сървър 2005

Можете да изградите заявката динамично:

declare @installment_list varchar(max)
select @installment_list = IsNull(@installment_list,'') + 
    '[' + cast(Installment as varchar(32)) + '],'
from #tbl
group by Installment

-- Remove last comma
set @installment_list = left(@installment_list,len(@installment_list)-1)

declare @dynquery varchar(max)
set @dynquery = 'select * ' +
    'from #tbl ' +
    'pivot ( ' +
    '   max([Installment]) ' +
    '   for [Installment] ' +
    '   in (' + @installment_list + ') ' +
    ') as pvt'

exec (@dynquery)

Обърнете внимание, че променливите на таблицата не се виждат в exec(), така че промених на временна променлива (#tbl вместо @tbl).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да създадете тип таблица в Sql Server 2005

  2. Как да изведа 7 записа за всеки ред, по 1 за всеки ден от седмицата?

  3. присъединете колона с данни, разделени със запетая

  4. Уникално ограничение на TSQL Multi Column, което също позволява множество нулеви стойности

  5. Как да съхранявате директория/йерархия/дървовидна структура в базата данни?