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

Динамичен SQL за генериране на имена на колони?

След като сте отговорили на много от тях през годините чрез генериране на динамичен опорен SQL от метаданните, разгледайте тези примери:

SQL Dynamic Pivot - как да поръчам колони

SQL Server 2005 Пивот върху неизвестен брой колони

Коя SQL заявка или изглед ще покаже „динамични колони“

Как да завъртя атрибутите на XML колона в T-SQL

Как да приложите принципа DRY към SQL изявления, които въртят месеците

Във вашия конкретен случай (използвайки ANSI оси вместо функцията PIVOT на SQL Server 2005):

DECLARE @template AS varchar(max)
SET @template = 'SELECT 
SKU1
{COLUMN_LIST}
FROM
OrderDetailDeliveryReview
Group By
OrderShipToID,
DeliveryDate,
SKU1
'

DECLARE @column_list AS varchar(max)
SELECT @column_list = COALESCE(@column_list, ',') + 'SUM(Case When Sku2=' + CONVERT(varchar, Sku2) + ' Then Quantity Else 0 End) As [' + CONVERT(varchar, Sku2) + '],' 
FROM OrderDetailDeliveryReview
GROUP BY Sku2
ORDER BY Sku2

Set @column_list = Left(@column_list,Len(@column_list)-1)

SET @template = REPLACE(@template, '{COLUMN_LIST}', @column_list)

EXEC (@template)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Писане на рекурсивна CTE с помощта на Entity Framework Fluent синтаксис или Inline синтаксис

  2. Разлика в обработката на интервалите между Oracle и SQL Server

  3. Как мога да определя инсталираните екземпляри на SQL Server и техните версии?

  4. 3 начина да разберете дали една колона е изчислена колона в SQL Server

  5. Разделяне на низа в sql сървър