-- EH version 9.01 DECLARE @csv_values NVARCHAR(MAX) = '05-16,06-04,06-06,05-29,05-21,05-30,05-31,06-05,05-23,06-03'; DECLARE @sql NVARCHAR(MAX); DECLARE @columns NVARCHAR(MAX); -- Create dynamic list of columns WITH params AS ( SELECT COALESCE( NULLIF(CAST('${start_date}' AS DATE), CAST('1900-01-01' AS DATE)), CAST(GETDATE() AS DATE) ) AS startdate ), filter_dates AS ( SELECT value AS filter_date FROM STRING_SPLIT(@csv_values, ',') ) SELECT @columns = STRING_AGG(QUOTENAME(filter_date), ', ') FROM filter_dates; -- Create dynamic SQL query SET @sql = N' WITH params AS ( SELECT COALESCE( NULLIF(CAST(''${start_date}'' AS DATE), CAST(''1900-01-01'' AS DATE)), CAST(GETDATE() AS DATE) ) AS startdate ), filter_dates AS ( SELECT value AS filter_date FROM STRING_SPLIT(''' + @csv_values + ''', '','') ), hardcoded_values AS ( SELECT filter_date, ''tbd'' AS value FROM filter_dates ) SELECT * FROM ( SELECT filter_date, value FROM hardcoded_values ) AS SourceTable PIVOT ( MAX(value) FOR filter_date IN (' + @columns + ') ) AS PivotTable; '; -- Execute the dynamic SQL EXEC sp_executesql @sql;