sql >> Database teknologi >  >> RDS >> Sqlserver

Dynamisk SQL til at generere kolonnenavne?

Efter at have besvaret mange af disse gennem årene ved at generere dynamisk pivot-SQL fra metadataene, så tag et kig på disse eksempler:

SQL Dynamic Pivot - hvordan man bestiller kolonner

SQL Server 2005 Pivot på ukendt antal kolonner

Hvilken SQL-forespørgsel eller visning vil vise "dynamiske kolonner"

Hvordan pivoterer jeg på en XML-kolonnes attributter i T-SQL

Sådan anvender du DRY-princippet på SQL-sætninger, der drejer om måneder

I dit særlige tilfælde (brug af ANSI-pivot i stedet for SQL Server 2005's PIVOT-funktion):

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. Hvordan afinstallerer du MySQL fra Mac OS X?

  2. PostgreSQL VACUUM og ANALYSE tips til bedste praksis

  3. SQL Server Join Estimation ved hjælp af Histogram Coarse Alignment

  4. Brugerdefinerede grafer til at overvåge dine MySQL-, MariaDB-, MongoDB- og PostgreSQL-systemer - ClusterControl Tips &Tricks