Pivotando o número variável de linhas para colunas

Atualmente estou tentando PIVOT algumas linhas para colunas. O problema é que nem sempre sei quantas linhas estarão disponíveis. Vamos ver um exemplo:

Values_Table                         Columns_Table
------------                         -----------
ID                                   ID
ColumnsTableID                       GroupID
Value                                ColumnName

RESULTADOS"

Columns_Table
---------------
ID   |   GroupID   |   ColumnName
---------------------------------     
0        1             Cats
1        1             Dogs
2        1             Birds
3        2             Pontiac
4        2             Ford
5        3             Trex
6        3             Raptor
7        3             Triceratops
8        3             Kentrosaurus

EXEMPLO FIDDLE SQL de um pivô ESTÁTICO. Eu estou tentando conseguir um pivô dinâmico -http://sqlfiddle.com/#!3/2be82/1

Então, eis o meu dilema: quero poder girar um número desconhecido de colunas com base nesse cenário, o GroupID.

Eu quero poder PIVOT, por exemplo, todas as linhas no GroupID 3 em colunas. Eu precisaria fazer isso sem saber quantas linhas estão no groupID 3.

O design do banco de dados está definido, por isso não posso fazer nada sobre isso. Tudo o que posso fazer é trabalhar com o que tenho :(

Então, dito isso, alguém tem alguma sugestão sobre como realizar essa tarefa de PIVOTAR um número desconhecido de linhas em colunas baseadas, neste exemplo, o groupID?

questionAnswers(1)

yourAnswerToTheQuestion