Is there a way to construct a PIVOT's IN clause using a SELECT? I want to build a PIVOT table, but I may have to use dynamic SQL unless the IN clause can be constructed in regular SQL.  I want to do something like this:

SELECT *
FROM
(
    SELECT x, y, z...
) srcTable
PIVOT
(
    MIN(srcTable.TimesDownloaded) FOR OrganizationName IN (SELECT CONCAT('Download_', OrganizationName) FROM AdamUser GROUP BY OrganizationName)
) pivotTable


So when I SELECT unique OrganizationNames from AdamUser and prefix Download_, that gives me a table whose row values equal the names of the columns I want.  This is invalid syntax though.  Do I always have to hard-code the PIVOT column names?
The T-SQL documentation of the FROM clause has this for the  specification:

&lt;pivoted_table&gt; ::=  
    table_source PIVOT &lt;pivot_clause&gt; [ [ AS ] table_alias ]  




&lt;pivot_clause&gt; ::=  
        ( aggregate_function ( value_column [ [ , ]...n ])   
        FOR pivot_column   
        IN ( &lt;column_list&gt; )   
    )




&lt;column_list&gt; ::=  
    column_name [ ,...n ]   




So no, it doesn't allow you to select the column names with a SELECT statement, and yes, you have to "hard-code" the PIVOT column names.