Jag vet att du inte sa någon dynamisk SQL
, men jag ser inget sätt att göra det i rak SQL
.
Om du kollar in mina svar på liknande problem i Pivot Table and Concatenate Columns och PIVOT i sql 2005
Den dynamiska SQL
det är inte sårbart för injektion, och det finns ingen god anledning att förbjuda det. En annan möjlighet (om data ändras mycket sällan) är att göra kodgenerering - istället för dynamisk SQL
, SQL
genereras till en lagrad procedur regelbundet.