El ejemplo al que se vinculó usa SQL dinámico. Desafortunadamente, no hay otro método integrado para pivotar en SQL Server cuando las columnas de salida no se conocen de antemano.
Si los datos no son demasiado grandes, probablemente sea más fácil simplemente ejecutar una consulta de fila normal desde ASP.NET y realizar su pivote en el código de la aplicación. Si los datos son muy grandes, tendrá que generar el SQL dinámicamente después de consultar primero los posibles valores de columna.
Tenga en cuenta que en realidad no necesita escribir una instrucción SQL que genere SQL dinámico; simplemente puede generar el SQL en ASP.NET, y lo más probable es que sea mucho más fácil. Simplemente no olvide escapar del Site
distinto valores antes de arrojarlos en una consulta generada, y no olvide parametrizar las partes de la instrucción SQL que normalmente haría sin el pivote.