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

Още един Pivot с динамични полета

DECLARE @QUERY NVARCHAR(MAX)

DECLARE @Annos TABLE(Anno INT)

INSERT INTO @Annos
SELECT DISTINCT Anno FROM TEST

DECLARE @Annuals VARCHAR(MAX)
DECLARE @Annuals_New VARCHAR(MAX)

SELECT @Annuals = COALESCE([email protected]+'],[' ,'[') +CONVERT(VARCHAR(10),A.Anno)
FROM @Annos A

SET @Annuals_New = @Annuals+']' 
SELECT @QUERY='SELECT * FROM TEST PIVOT (MAX(DonaAnno) FOR Anno IN ('[email protected]_New+'))AS [pivot]'

EXEC SP_EXECUTESQL  @QUERY

Това би помогнало.;-)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изходният параметър на съхранена процедура връща @Value

  2. Как да сравним датите в SQL Server

  3. Как да покажете запис няколко пъти, включително интервали от дни въз основа на началната и крайната му дата

  4. UNIQUE - начин да имате уникални редове в таблицата?

  5. Прилагане на агрегатната функция MIN към поле BIT