Quero construir uma PIVOT
tabela, mas posso ter que usar SQL dinâmico, a menos que a IN
cláusula possa ser construída em SQL regular. Eu quero fazer algo assim:
SELECT *
FROM
(
SELECT x, y, z...
) srcTable
PIVOT
(
MIN(srcTable.TimesDownloaded) FOR OrganizationName IN (SELECT CONCAT('Download_', OrganizationName) FROM AdamUser GROUP BY OrganizationName)
) pivotTable
Então, quando eu SELECT
único OrganizationName
s de AdamUser
e prefixo Download_
, isso me dá uma tabela cujos valores de linha são iguais aos nomes das colunas que eu quero. Esta é uma sintaxe inválida. Eu sempre tenho que codificar os PIVOT
nomes das colunas?
A documentação T-SQL da cláusula FROM tem isto para a especificação:
Portanto, não, ele não permite que você selecione os nomes das colunas com uma instrução SELECT e, sim, você precisa "codificar" os
PIVOT
nomes das colunas.